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

Wyszukiwanie w trybie pełnego tekstu w trybie logicznym MySQL zwraca zbyt wiele wyników

Aby usprawnić sortowanie wyników w trybie logicznym, możesz użyć następującego:

SELECT column_names, MATCH (text) AGAINST ('word1 word2 word3')
AS col1 FROM table1
WHERE MATCH (text) AGAINST ('+word1 +word2 +word3' in boolean mode) 
order by col1 desc;

Korzystanie z pierwszego MATCH() otrzymujemy wynik w trybie wyszukiwania innym niż logiczny (bardziej charakterystyczny) . Drugi MATCH() zapewnia, że ​​naprawdę otrzymamy tylko pożądane wyniki (ze wszystkimi 3 słowami) .

Twoje zapytanie będzie więc wyglądać następująco:

SELECT *, MATCH (artist, title) AGAINST ('paul van dyk')
    AS score FROM tracks
    WHERE MATCH (artist, title) 
    AGAINST ('+paul +van +dyk' in boolean mode) 
    order by score desc;

Ufnie; uzyskasz teraz lepsze wyniki.

Czy to działa, czy nie; proszę daj mi znać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyznaj uprawnienia do kilku tabel z określonym prefiksem

  2. Błąd java.lang.ClassNotFoundException:com.mysql.jdbc.Driver podczas uruchamiania JAR za pomocą wiersza poleceń

  3. Serwer MySQL zniknął - dokładnie za 60 sekund

  4. Jak poprawić „java.sql.SQLFeatureNotSupportedException” podczas korzystania z metody createArrayOf()

  5. Zmień hasło użytkownika mysql za pomocą wiersza poleceń