Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zezwolić na wyszukiwanie pełnotekstowe z myślnikami w zapytaniu?

Stąd http://dev.mysql.com/doc /refman/5.0/en/wyszukiwanie-pełnego tekstu.html

Jednym z rozwiązań pozwalających znaleźć słowo z myślnikami lub łącznikami jest użycie WYSZUKIWANIA PEŁNEGO TEKSTU W TRYBIE LOGICZNA i umieszczenie słowa z łącznikiem / myślnikiem w podwójnych cudzysłowach.

Lub stąd http://bugs.mysql.com/bug.php?id=2095

Istnieje inne obejście. Niedawno dodano do podręcznika:„Modyfikuj plik zestawu znaków:nie wymaga to ponownej kompilacji. Makro true_word_char() używa tabeli „typ znaku”, aby odróżnić litery i cyfry od innych znaków. Możesz edytować zawartość jednego ze znaków ustaw pliki XML, aby określić, że „-” jest „literą”. Następnie użyj podanego zestawu znaków dla indeksów PEŁNOTEKSTOWYCH."

Nie próbowałem tego na własną rękę.

Edycja:Oto kilka dodatkowych informacji tutaj http:// /dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Fraza zawarta między znakami podwójnego cudzysłowu („"") pasuje tylko do wierszy, które zawierają frazę dosłownie tak, jak została wpisana. Mechanizm pełnotekstowy dzieli frazę na słowa i przeszukuje je w indeksie FULLTEXT. Przed MySQL 5.0.3 silnik przeszukiwał podłańcuch frazy w znalezionych rekordach, więc dopasowanie musi zawierać znaki niebędące słowami we frazie.Od MySQL 5.0.3 znaki niebędące słowami nie muszą być dokładnie dopasowane:Wyszukiwanie fraz wymaga tylko tego, aby dopasowania zawierały dokładnie te same słowa co fraza i w tej samej kolejności. Na przykład „test fraza” pasuje do „test, fraza” w MySQL 5.0.3, ale nie wcześniej.

Jeśli fraza nie zawiera słów znajdujących się w indeksie, wynik jest pusty. Na przykład, jeśli wszystkie słowa są albo odrzucanymi słowami, albo krótsze niż minimalna długość indeksowanych słów, wynik jest pusty.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przejście z bazy danych do sesji

  2. MySQL LAST_INSERT_ID() używany z wieloma rekordami Instrukcja INSERT

  3. MySQL pokazuje liczbę 0 dla dat bez rekordów

  4. Jaka jest nazwa języka programowania MySQL dla SQL?

  5. jak posortować kolejność LEFT JOIN w zapytaniu SQL?