![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przygoptowuje wyszukiwarke opartą o parametr FULLTEXT.. Czy mógłby mi ktoś podpowiedziec, na jakiej zasadzie zwracany jest parametr score? Znalazłem takie przykładowe zapytanie:
W jaki sposób mogę okreslić, żeby wyszukiwarka ograniczała wyniki tylko do wyników, ktore zawierają wszystkie słowa z zapytania mojego? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Score to właśnie ilość słów, które pasują do danych wyników.
Przykładowo, jeśli wpiszesz do inputa szukajki: testowe szukanie To posty, które będą zawierały te dwa słowa, będą miały score = 2, jeśli wpis będzie miał 1 słowo spośród tych dwóch to score = 1 itd. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Score to właśnie ilość słów, które pasują do danych wyników. Przykładowo, jeśli wpiszesz do inputa szukajki: testowe szukanie To posty, które będą zawierały te dwa słowa, będą miały score = 2, jeśli wpis będzie miał 1 słowo spośród tych dwóch to score = 1 itd. W takim razie dlaczego czasami score np przy dwóch słowach ma wartośc np 5 6 itd.. ma też liczby dziesiętne? czy to oznacza, że znazł dana wartośc kilka razy, lub w kilku komórkach bazy? Ten post edytował kukix 4.03.2013, 15:13:03 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Wartość zwrócona przez MATCH AGAINST sama w sobie nie jest zbyt istotna. Istotne jest tylko porównywanie wyników między sobą. Im wyższy wynik, tym bardziej trafne wyszukiwanie.
2. Jeżeli chcesz wymusić występowanie obu słów w wyszukiwanych dokumentach możesz skorzystać z BOOLEAN MODE i ewentualnie modyfikatora "+" - więcej w dokumentacji MySQL. 3. Jeżeli chciałbyś dowiedzieć się więcej n/t samego wyniku wyszukiwania (w Twoim przypadku: score) - na początek powinno wystarczyć: http://en.wikipedia.org/wiki/Tf-idf oraz http://en.wikipedia.org/wiki/Vector_space_model |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Wartość zwrócona przez MATCH AGAINST sama w sobie nie jest zbyt istotna. Istotne jest tylko porównywanie wyników między sobą. Im wyższy wynik, tym bardziej trafne wyszukiwanie. 2. Jeżeli chcesz wymusić występowanie obu słów w wyszukiwanych dokumentach możesz skorzystać z BOOLEAN MODE i ewentualnie modyfikatora "+" - więcej w dokumentacji MySQL. 3. Jeżeli chciałbyś dowiedzieć się więcej n/t samego wyniku wyszukiwania (w Twoim przypadku: score) - na początek powinno wystarczyć: http://en.wikipedia.org/wiki/Tf-idf oraz http://en.wikipedia.org/wiki/Vector_space_model Ad1. Czyli wartośc parametru score nie ma żadnego znaczenia jeżeli chodzi o wyznaczenie czy wszystkie słowa zostały odnalezione? Ad2. Próbowałem doac przed każda frazą +, jednak nie powoduje to wymuszneie wszystkich wyrazów ![]() Ad3. Tutaj musze na dłużej przysiąść, nie bardzo jestem w stanie to zrozumieć |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ad2. musisz dodać "IN BOOLEAN MODE" wtedy plusy zaczną działać
@Crozin - prawda - pokićkało mi się z czymś innym. Sorki. Ten post edytował Sephirus 5.03.2013, 11:50:31 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Nie, wartość zwracana przez MATCH AGAINST nie informuje o ilości znalezionych słów.
2. O ile nie podałeś tzw. stop words (np. "for", "this", "of" czy w przypadku polskiego "na", "po", "bo") dodanie plusa przy wyszukiwaniu (w trybie BOOLEAN) wymusza istnienie słowa. Pokaż kod. @Sephirus: MATCH AGAINST IN BOOLEAN MODE nadal zwraca wynik reprezentujący "trafność", nie 0/1. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:07 |