![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) ![]() ![]() |
Witam, zacząłem robić wyszukiwarkę przy pomocy ElasticSearch, próbowałem według kilku poradników i sprawdzając dokumentację, ale nie mogę dojść do oczekiwanego rezultatu. Obecnie pobieram wyniki funkcją match(), mam zrobiony custom tokenizer (typ nGram) oraz custom analyzer (w nim ten tokenizer customowy z nGram i filtry lowercase oraz asciifolding), analyzer podpięty do pola title z tytułem ogłoszenia, i nawet fajnie wyszukuje wyniki (fuzziness też tam wcisnąłem w razie braku wyników), ale chciałbym jeszcze aby wyświetlało tylko 2-3 frazy w wynikach wyszukiwania a nie całe tytuły ogłoszeń (tak, to wyszukiwarka ogłoszeń). Ma to działać tak samo jak na OLX / allegro / sprzedajemy, czyli wpisujesz np. "felgi" i podpowiada "felgi aluminiowe", "felgi metalowe", "felgi 18", ale bez całych opisów ogłoszeń właśnie
![]() Ten post edytował adrianpl20 21.09.2018, 06:31:26 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił na zasadzie:
- wyszukujesz "felgi" - baza zostaje odpytana i zwraca jakieś tam wyniki. - Bierzesz te wyniki i wycinasz kawałem - potem robisz sobie zestawienie które zwroty są najczęściej używane i wypluwasz tylko kilka z nich + oryginalną frazę - przy zatwierdzeniu frazy zapisujesz sobię do bazy do jakiejś osobnej tabeli/dokumentu tą frazę i dalej możesz już bazować dodatkowo na częstotliwości wyszukiwania jako kolejny element (waga) To taka luźna dywagacja. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 20.02.2014 Ostrzeżenie: (10%) ![]() ![]() |
Dziękuję za tą "luźną dywagację", rzuciłeś mi inne spojrzenie na ten problem
![]() Lekko zmodyfikowałem Twój pomysł ![]() Zamiast męczyć te wyniki, może po prostu by obrabiać w backendzie zatwierdzoną frazę (usuwać zbędne słowa i znaki, a także wyciąć np. tylko pierwsze 3 wyrazy), zapisać to do ElasticSearch i z tego wyswietlać wyniki do podpowiadania frazy? Dodatkowo, żeby nie było pusto na początku z tymi wynikami, to przenosząc ogłoszenia do ElasticSearch, obrabiać w ten sam sposób tytuł ogłoszenia (jak wyżej) i dodawać te wyciągnięte pierwsze 3 wyrazy jako jedną frazę do tabeli z proponowanymi frazami? Jakieś negatywy takiego rozwiązania? Ten post edytował adrianpl20 21.09.2018, 19:31:39 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:44 |