Kiedy można mówić o „znaczenie ", naprawdę chcesz wyszukiwania w języku naturalnym, który jest obsługiwany przez MySQL full-text searches. Składnia różni się od zwykłych zapytań, takich jak: , takich jak:, a do tabeli należy dodać specjalny indeks, ale w ten sposób możliwe jest porządkowanie według trafności.
Oto jak MySQL oblicza trafności (od link):
Kiedy MATCH() jest używana w klauzuli WHERE, tak jak w przykładzie przedstawionym wcześniej wiersze zwracane są automatycznie sortowane z najwyższą pierwszej znaczenie . Wartości istotności są nieujemnymi liczbami zmiennoprzecinkowymi. Zero relevance oznacza brak podobieństwa. Trafność jest obliczana na podstawie liczby słów w wierszu, liczby unikalnych słów w tym wierszu, łącznej liczby słów w kolekcji oraz liczby dokumentów (wierszy) zawierających dane słowo.
Aby create a full-text index on an existing table użyj FULLTEXT modyfikator:
CREATE FULLTEXT INDEX index_name
ON table_name (col1, col2, col3)
Następnie można wykonać kwerendę tak, aby pobrać wyniki w kolejności znaczenie:
SELECT * FROM table_name
WHERE MATCH (col1,col2,col3)
AGAINST ('keyword' IN NATURAL LANGUAGE MODE);
Przez "najbardziej istotne" Czy masz na myśli, że mecz na 'col_1' ma wyższy priorytet niż mecz na' col_2' i tak dalej? – Wiseguy
Co stanowi najbardziej istotne wyniki? – codewaggle
miałeś na myśli "filtrować" zamiast "sortować"? – Sebas