1

私はウェブサイトの検索機能を書いているところです。クエリで検索する必要がある複数のテーブルがあり、それぞれ重要度が異なります。

ここにクエリに関する私の現在の考えがあります

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),が、別の方法はありますか?

4

1 に答える 1

0

このページには、自然言語検索結果のスコアリングに関する優れた情報がいくつかあります。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

于 2013-08-15T19:10:57.760 に答える