Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Unikalność tekstu
Forum PHP.pl > Forum > Przedszkole
markuz
Witam,

Posiadam bazę danych z tekstami (kawały). Każdy kawał może mieć maksymalnie 1000 znaków. W jaki sposób (najbardziej optymalny) sprawdzić czy kawał istnieje już w bazie danych? Może ktoś z Was posiada jakiś fajny pomysł? Chodzi o to, że nawet jeżeli kawał nieco zmieni strukturę bądź np. będą w nim inne imiona itp. to aby nadal wykrywało iż kawał nie jest oryginalny.

Proszę o pomoc i opinie smile.gif
Damonsson
levenshtein
markuz
A co jeśli w bazie będzie np. 10000 rekordów? Każdy tekst muszę pobrać i sprawdzić tą funkcją? To chyba nie jest najoptymalniejsze rozwiązanie smile.gif
Damonsson
Wpisz sobie w google to co dostałeś + MySQL.

Niedługo zaczniecie zakładać tematy typu "jak zrobić siku".
A na odpowiedź "kibel", odpiszecie, "gdzie takie coś znajdę i jak wygląda, czy przez to się sika?"

Możesz sobie zawężać wyniki, poprzez różne filtry jakie sobie wymyślisz (np długość stringu), ale docelowo i tak będziesz musiał porównać większość rekordów z bazy. Jak sobie inaczej wyobrażasz sprawdzenie unikalności, niż poprzez porównanie każdego rekordu z tym, który chcesz dodać?

http://stackoverflow.com/questions/4671378...htein-mysql-php
http://stackoverflow.com/questions/1390988...nction-in-mysql
http://stackoverflow.com/questions/3338889...t-by-similarity
http://stackoverflow.com/questions/5322917...trings-in-mysql
markuz
Dziękuję za wyczerpującą odpowiedź smile.gif

Myślałem o różnych ułatwieniach typu pobieranie kilku-kilkunastu słów np. najczęściej występujących wraz z ich liczbą (coś ala tagi) i na podstawie tych słów sprawdzanie czy kawał już istnieje tak aby można to było zrobić za pomocą jednego polecenia SQL. Do tego potrzebna by była dodatkowa tabela, ale myślę, że taka tabela ułatwi pracę bazy danych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.