1

全文 (ブール値) クエリを微調整しようとしています。行に用語が含まれていても、その用語を検索クエリの一部として使用しない場合、その行を上位にランク付けすることはできますか?

チーズというキーワードが含まれている行を上位にランク付けしたいのですが、チーズという用語を積極的に検索しないでください。

現在、私は のラインに沿って何かを使用していますがsearchterm >cheese*、それでも実際には用語cheeseも検索すると思いますか?

これが引き起こす問題は、結果がない場合でも、に基づいて結果が表示されることcheeseです。結果を改善する方法としてのみ使用したいのですが、検索対象としては使用したくありません。

black >cheese*black をまったく含まないが、cheese という単語を含む行が返される可能性があります。

4

1 に答える 1

1

を使用してみてください+test cheese。ドキュメントには、結果に含まれている必要があると記載されていますtestが、含まれcheeseている場合は上位にランク付けされます。

クエリの例:

SELECT 
  MATCH (name) AGAINST ('+test cheese' IN BOOLEAN MODE) AS relevance, 
  t.* 
FROM 
  test AS t 
WHERE 
  MATCH (name) AGAINST ('+test' IN BOOLEAN MODE) 
ORDER BY relevance DESC;

http://sqlfiddle.com/#!2/6e5f8/4で確認できます。

ドキュメント: http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

于 2013-03-08T13:28:29.530 に答える