Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Fulltext index wyszukiwanie
pitu
post
Post #1





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


Witam

Dodałem na kolumnę Fulltext Index w celu optymalizacji, chciałbym teraz wyszukiwać w tabeli po tym indeksie.

Index:
  1. CREATE FULLTEXT INDEX index_mp3 ON mp3_search(search_txt);


W celu wyszukania z wykorzystaniem stworzonego indeksu zamieniłem zwykłe zapytanie Select ... From ... Where ... na:
  1. SELECT * FROM mp3_search WHERE MATCH(search_txt) AGAINST('"rihanna-only"');



Problem w tym, że wynikiem owego zapytania musi być jeden rekord, w którym znajduje się identyczna fraza. W bazie frazy zawierają znak minus (-), który jest w tym przypadku znakiem specjalnym.

Pytania:
Jak zwrócić jeden dokładnie pasujący rekord?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Noidea
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


@pitu120 Jeśli w polu search_txt nie masz nic więcej oprócz "rihanna-only" to nie używaj indeksu pełnotekstowego. Tracisz tylko wtedy na wydajności i pojawiają się takie właśnie problemy ze znakami specjalnymi. Użyj zwykłego indeksu.


@erix To była pierwsza rzecz którą sprawdziłem - nie działa. W manualu nie ma żadnej wzmianki o znakach ucieczki. Dodatkowo znalazłem to:
Cytat
Generally, anything that's alphabetic or numeric (including accented characters) is part of a word, anything that's not alphabetic or numeric (even "-") is not part of a word and is therefore used as a separator.

http://dev.mysql.com/tech-resources/articl...t-revealed.html
Ma to prawdopodobnie związek z tym jak tworzony jest indeks słów. Bez sensu byłoby oprócz pojedynczych słów dodawać do indeksu też pary słów, trójki, czwórki, itd. na wypadek, gdyby ktoś chciał wyszukać dokładną frazę "ala ma kota". No i rykoszetem oberwały też pary słów oddzielone innym znakiem niż spacja czy enter.

Ten post edytował Noidea 14.12.2010, 21:45:06
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 30.12.2025 - 07:59