データベースを検索しているときに、本当に関連性の高い結果 (ブール検索で返されたもの) をランク付けしたいのですが、同時に、関連性の低い (ような) 結果を完全に除外したくありません。
現在、私のクエリは次のようになっています。
(SELECT *, MATCH (col1,col2,col3,col4) AGAINST (query* in boolean mode) AS score
FROM table where match(col1,col2,col3,col4) against (query* in boolean mode)
order by score DESC)
UNION (SELECT * from table where col1 like query
or col2 like query or col2 like query or col4 like query)
これは、指定された 2 つの選択句の列数が異なることを示すエラーを返します。これは、クエリの最初の部分に「スコア」が列として追加されているためだと理解しています。
この問題の回避策はありますか?