2013-05-16 14 views

Odpowiedz

14

Wyszukiwanie naturalne pełnotekstowe w języku MySQL ma na celu dopasowanie wyszukiwanych haseł do korpusu w celu znalezienia najbardziej odpowiednich dopasowań. Załóżmy, że mamy artykuł zawierający "I love pie" i mamy dokumenty d1, d2, d3 (baza danych w twoim przypadku). Dokumenty 1 i 2 dotyczą odpowiednio sportu i religii, a dokument 3 dotyczy żywności. Zapytanie,

SELECT * FROM WHERE MATCH artykułów (tytuł, ciała) PRZECIW ('bazy danych' w języku naturalnym MODE);

Wrócimy D3, a następnie D2, D1 (losową kolejność d2, d1 zależności co jest bardziej równy artykułu), bo d3 mecze artykuł najlepiej.

Podstawowym algorytmem używanym przez MYSQL jest prawdopodobnie algorytm tf-idf, w którym tf oznacza częstotliwość i idf dla odwrotnej częstotliwości dokumentu. tf jest tak, jak mówi, tyle razy, ile słowo w w artykule występuje w dokumencie. idf opiera się na ilu dokumentach występuje słowo. Zatem słowa, które występują w wielu dokumentach, nie przyczyniają się do wyboru najbardziej reprezentatywnego dokumentu. Produkt tf * idf daje wynik, im wyższe, tym lepiej słowo oznacza dokument. Tak więc "ciasto" będzie występować tylko w dokumencie d3, a zatem będzie miało wysoką wartość tf i wysoką wartość idf (ponieważ jest odwrotnością). Podczas gdy "the" będzie miało wysoką wartość Tf, ale niską wartość idf, która wyda TF i da niski wynik.

Tryb naturalny języka MYSQL zawiera również zestaw słów (a, a, niektóre itp.) I usuwa słowa, które mają mniej niż 4 litery. Które można zobaczyć pod podanym linkiem.

Niektóre słowa są ignorowane podczas wyszukiwania pełnotekstowego:

Any word that is too short is ignored. The default minimum length of words that are found by full-text searches is three characters for 

indeksów wyszukiwania InnoDB lub cztery znaki dla MyISAM. Można kontrolować wartość graniczną , ustawiając opcję konfiguracji przed utworzeniem opcji indeksu: innodb_ft_min_token_size dla InnoDB, indeksów lub ft_min_word_len dla MyISAM.

Words in the stopword list are ignored. A stopword is a word such as “the” or “some” that is so common that it is considered to have 

zerowa wartość semantyczna. Istnieje wbudowana lista stopword, ale może być ona nadpisana przez listę zdefiniowaną przez użytkownika. Listy zatrzymań i powiązane opcje konfiguracyjne są różne dla indeksów wyszukiwania InnoDB i MyISAM. Przetwarzanie stopword jest kontrolowane przez opcje innodb_ft_enable_stopword, innodb_ft_ser__stopword_table, i innodb_ft_user_stopword_table dla indeksów wyszukiwania InnoDB i ft_stopword_file dla MyISAM ones.

Powiązane problemy