2010-08-05 13 views
7

Powiel możliwe:
How does the Google “Did you mean?” Algorithm work?Wyszukiwarka z 'nie znaczy'

Mam tabeli bazy danych z około 2 milionów płyt. Używam mysql fulltext do wyszukiwania, ale użytkownicy bardzo często wpisują złe słowa ex gmes -> powinny być grami, więc potrzebuję biblioteki z owijarkami PHP, aby mieć funkcję podobną do Google'a "co masz na myśli" Co powinienem użyć?

+4

Dobre pytanie, ale powinieneś był wypróbować wyszukiwarkę na SO przed pytaniem;) Możliwy duplikat [Jak Google "Czy chodziło Ci o?" Algorytm działa?] (Http://stackoverflow.com/questions/307291/how-does-the-google-did-you-mean-algorithm-work) i [para innych] (http://stackoverflow.com/ search? q = did + you + mean + search + php) – Gordon

Odpowiedz

1

Indeks to lista słów i miejsce ich występowania. Na przykład. gry występują w wierszach 123 i 456. Jeśli masz taką listę ze wszystkimi słowami, możesz łatwo wyszukać słowo, które pasuje najlepiej. W ten sposób możesz dopasować gmes do gier.

Nie jest to jednak możliwe w przypadku indeksu MySQL.

3

Można użyć interfejsu API, takiego jak Yahoo Spelling Suggestion, jako łatwego sposobu na ukończenie go bez konieczności samodzielnego rozwijania.

1

jeśli nie planujesz polegać na 3rd stron zewnętrznych, na pewno trzeba własnego słownika z algorytmem Levenshteina aby dowiedzieć się, jak blisko są wpisy użytkowników do słownika terminów

1

Można użyć interfejsu API do sprawdzania pisowni Yahoo itd., Jeśli zapytania są bardzo ogólne. Ale jeśli masz słownictwo związane z domeną, lepiej jest użyć numeru Apache Solr.

Możesz go użyć do zindeksowania swoich rekordów 2MM, proste! I używaj go jako serwera wyszukiwania z faceting itp. Generuje również indeks sprawdzania pisowni z twoich rekordów, które możesz wykorzystać do "masz na myśli"? lub funkcja automatycznego sugerowania. Jest również niezwykle łatwa do zintegrowania z dowolnym językiem ze względu na jego RESTful API

Podsumowanie: jeśli szukasz rozwiązania długoterminowego, które może obsłużyć kilka rzeczy, oprócz sprawdzania pisowni, takich jak search/auto-sugestia/faceting itp. Solr jest drogą do zrobienia.