W jaki sposób można zaimplementować wyrażenie "Czy chodziło Ci o:" tak, jak Google ma w przypadku niektórych search queries?Jak zintegrować funkcję "Czy chodziło Ci o" w szynach?
PS: Używam sfinksa w moim produkcie. Czy możesz zasugerować, w jaki sposób mogę to wdrożyć. Wszelkie wskazówki i sugestie dla niektórych innych wyszukiwarek, które mają tę funkcjonalność są najbardziej mile widziane. Używam rails2.3.8, jeśli pomaga
Jednym rozwiązaniem może być:
Zrób słownika znanych „słowa kluczowe” lub „fraz” oraz w akcji wyszukiwania, jeśli nic nie zostanie znaleziony następnie uruchomić zapytanie wtórne w tym słowniku. Aktualizuj ten słownik za każdym razem, gdy tworzony jest wpis do wyszukiwania, blog lub nazwa użytkownika.
zapytanie = "supreman"
słowniku = [ "nadczłowiek", "Batman", "hanuman" ...] (tabela DB)
wyszukiwania (zapytanie)
razie bez rezultatów, wtedy
wyszukiwania w słowniku (gdzie "keyword" LIKE zapytanie lub zapytanie "LIKE") => "superman"
Sprawdź dokumentację Sfinksa lub Solr. Mogą mieć lepszą implementację tego zapytania "Lubię to", które zwraca wartość% dopasowania.
- wyświetlacz -> Czy chodziło Ci o "Supermana"?
Ale chodzi o to, jak sprawić, by był wydajny?
nie ma żadnego wbudowane rozwiązanie lub jakiś klejnot dodatek dla wyszukiwarek pełnotekstowych? –
Gdybym musiał to zaimplementować, zacznę od patrzenia na ['pg_trgm'] (http://www.postgresql.org/docs/9.2/static/pgtrgm.html), ponieważ większość moich aplikacji już używa PostgreSQL. Kiedy ostatnio sprawdziłem, Sphinx nie ma takich rozmytych wyszukiwań, chyba że dostarczono je przez. – willglynn
Używam MySQL :( –