Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Słowo "of" w wyszukiwaniu pełnotekstowym
sazian
post 15.05.2018, 12:53:50
Post #1





Grupa: Zarejestrowani
Postów: 1 043
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Witam,
jak zwykle mam bardzo dziwny problem,
z jakiegoś powodu wyszukiwanie pełnotekstowe nie chce działać ze słowem "of".

Niestety wyszukiwanie tak krótkich słów wymaga zmiany konfiguracji mysql'a więc nie mogę wstawić przykładu live, w związku z tym postaram się to opisać w miarę dokładnie.
U nie w bazie config jest zmieniony na
Kod
innodb_ft_min_token_size=1
ft_min_word_len=1


Indeks oraz wiersze były dodawane po zmianie konfiguracji, ale dla pewności użyłem wszystkich opcji z phpmyadmina do przebudowy tabeli.

W kolumnie z indeksem full mam dodane nasypujące wiersze
Cytat
Jakis tekst z of i cos jeszcze
Jakis tekst z oo i cos jeszcze
Jakis tekst z fo i cos jeszcze

następnie w bazie próbuję kolejno wyszukać trzy słowa: of, oo, fo
  1. SELECT nazwa,MATCH (sklep_towary_szukaj.nazwa ) AGAINST ('+of*' IN BOOLEAN MODE) AS 'MATCH' FROM tabela


wyniki wyglądają następująco:
słowo of:

Kod
+--------------------------------+-------+
| nazwa                          | MATCH |
+--------------------------------+-------+
| Jakis tekst z of i cos jeszcze |     0 |
| Jakis tekst z oo i cos jeszcze |     0 |
| Jakis tekst z fo i cos jeszcze |     0 |
+--------------------------------+-------+


słowo oo:
Kod
+--------------------------------+--------------------+
| nazwa                          | MATCH              |
+--------------------------------+--------------------+
| Jakis tekst z of i cos jeszcze |                  0 |
| Jakis tekst z oo i cos jeszcze | 10.634283065795898 |
| Jakis tekst z fo i cos jeszcze |                  0 |
+--------------------------------+--------------------+



słowo fo:
Kod
+--------------------------------+--------------------+
| nazwa                          | MATCH              |
+--------------------------------+--------------------+
| Jakis tekst z of i cos jeszcze |                  0 |
| Jakis tekst z oo i cos jeszcze |                  0 |
| Jakis tekst z fo i cos jeszcze | 1.8257453441619873 |
+--------------------------------+--------------------+



jak widać słowo oo zostało odnalezione bardzo dobrze, słowo fo już nieco słabiej ale dalej jest wyszukiwane, natomiast słowo of nie jest znajdowane wcale.
Sprawdzałem to również dla innych tekstów typu "v 5" i tu działało prawidłowo. Jest tylko problem ze słowem of.

Macie jakiś pomysł o co może tu chodzić ? Bo mi już czułki opadają .... sad.gif  

Go to the top of the page
+Quote Post
Pyton_000
post 15.05.2018, 13:05:10
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Spróbuj jeszcze dropnąć index i założyć na nowo tak aby się odbudowały.
Go to the top of the page
+Quote Post
sazian
post 15.05.2018, 13:07:22
Post #3





Grupa: Zarejestrowani
Postów: 1 043
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Niestety dalej to samo.

edit:
równica jest taka że zwiększyła się wartość dla oo oraz nieznacznie dla fo
Kod
+--------------------------------+----------+-------------------+-------------------+
| nazwa                          | MATCH of | MATCH oo          | MATCH fo          |
+--------------------------------+----------+-------------------+-------------------+
| Jakis tekst z of i cos jeszcze |        0 |                 0 |                 0 |
| Jakis tekst z oo i cos jeszcze |        0 | 14.92204475402832 |                 0 |
| Jakis tekst z fo i cos jeszcze |        0 |                 0 | 1.828880786895752 |
+--------------------------------+----------+-------------------+-------------------+


edit2:
sprawdziłem jeszcze jak się zachowa po usunięciu gwiazdki i co ciekawe fo i oo teraz pokazują 14.92204475402832, a of dalej 0.

Ten post edytował sazian 15.05.2018, 13:18:52
Go to the top of the page
+Quote Post
batman
post 16.05.2018, 01:46:30
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




"of" to tzw. stop word i dlatego pomijany jest w wyszukiwaniu. Tutaj znajdziesz więcej informacji - https://dev.mysql.com/doc/refman/5.7/en/ful...-stopwords.html


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
sazian
post 16.05.2018, 08:39:47
Post #5





Grupa: Zarejestrowani
Postów: 1 043
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Dzięki działa smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 00:33