私はウェブサイトの検索機能を書いているところです。クエリで検索する必要がある複数のテーブルがあり、それぞれ重要度が異なります。
ここにクエリに関する私の現在の考えがあります
SELECT id FROM table1
WHERE MATCH(name) AGAINST('keyword')
UNION
SELECT id FROM table2
WHERE MATCH(name) AGAINST('keyword')
...
...
私が遭遇した問題の 1 つは、キーワードに完全に一致する結果を他の結果よりも優先することでした。たとえば、次の場合:
id - name
1 - Central Park
2 - Park
それFULLTEXT
をキーワードで検索するとPark
、両方が同じ関連性を持つと評価されます。でも、常に2 - Park
結果を出したい。で注文することでこの問題を解決できると思いますLENGTH(name),
が、別の方法はありますか?