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%)
-----


Nie jestem pewny w 100%, ale wydaje mi się, że się nie da. Jedyne co możesz zrobić gdy szukasz wyrażenia ze znakami specjalnymi, to ograniczyć znacząco ilość wierszy przy użyciu wyszukiwania pełnotekstowego, a następnie oczyścić dokładnie wynik przy użyciu LIKE:

  1. SELECT *
  2. FROM (
  3. SELECT *
  4. FROM mp3_search
  5. WHERE MATCH( `search_txt` ) AGAINST( '"rihanna-only"' IN BOOLEAN MODE )
  6. ) ms
  7. WHERE `search_txt` LIKE '%rihanna-only%'

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 - 18:01