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

Nadaj niektórym polom większą trafność i sortuj według trafności w wyszukiwaniu pełnotekstowym mysql

Najpierw utwórz trzy indeksy PEŁNOTEKSTOWE:

* one on the title column
* one on the body column
* one on both title and body columns

Następnie utwórz zapytanie w następujący sposób:

SELECT field1, field2, field3, title, body,
MATCH (title) AGAINST ('word_to_search') AS rel_title,
MATCH (body) AGAINST ('word_to_search') AS rel_body
FROM table_to_use
WHERE MATCH (title,body) AGAINST ('word_to_search')
ORDER BY (rel_title*2)+(rel_body)

Dzięki temu tytuł będzie 2 razy bardziej trafny niż treść.

Jest to bardzo przydatne, gdy trzeba zezwolić na sortowanie treści, na przykład według tagów (które nie są przeglądane przez użytkowników), ponieważ pozwala na modyfikowanie wyników zza kulis.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać metadane bazy danych?

  2. Nieprawidłowy tekst JSON w argumencie 2 - json_contains w MySQL 5.7.8

  3. Jak zainstalować klejnot MySQL na Mac OS X?

  4. Łącznik MySQL c++ nie zawiera libmysql.lib

  5. Zapytanie SQL zwracające wartości maksymalne na przestrzeni dziesięcioleci