関連性の高い順にデータベースを検索しようとしています。
次のクエリは両方とも機能しますが、最初のクエリのみが結果を返しません。
IN BOOLEAN MODE を使用してみましたが、title_relevance フィールドと desc_relevance フィールドが 0 または 1 になるだけです。用語が表示されるかどうかだけでなく、用語の関連性によって適切にランク付けしたいと考えています。
これを達成する方法はありますか??
ありがとう!
最初のクエリ:
SELECT
rcv_id,
rcv_title,
rcv_desc,
(MATCH(rcv_title) AGAINST ('nur*')) AS title_relevance,
(MATCH(rcv_desc) AGAINST ('nur*')) AS desc_relevance
FROM rc_vacancy
WHERE
( MATCH(rcv_title,rcv_desc) AGAINST ('nur*') )
AND rcv_deleted = 'off'
AND rcv_active = 'on'
AND rcv_type = 'P'
ORDER BY title_relevance DESC, desc_relevance DESC, rcv_lastupdated
2 番目のクエリ:
SELECT
rcv_id,
rcv_title,
rcv_desc,
(MATCH(rcv_title) AGAINST ('nurse')) AS title_relevance,
(MATCH(rcv_desc) AGAINST ('nurse')) AS desc_relevance
FROM rc_vacancy
WHERE
( MATCH(rcv_title,rcv_desc) AGAINST ('nurse') )
AND rcv_deleted = 'off'
AND rcv_active = 'on'
AND rcv_type = 'P'
ORDER BY title_relevance DESC, desc_relevance DESC, rcv_lastupdated
ワイルドカードなしで「nur」を検索しても、結果はゼロになります。
SELECT
rcv_id,
rcv_title,
rcv_desc,
(MATCH(rcv_title) AGAINST ('nur')) AS title_relevance,
(MATCH(rcv_desc) AGAINST ('nur')) AS desc_relevance
FROM rc_vacancy
WHERE
( MATCH(rcv_title,rcv_desc) AGAINST ('nur') )
AND rcv_deleted = 'off'
AND rcv_active = 'on'
AND rcv_type = 'P'
ORDER BY title_relevance DESC, desc_relevance DESC, rcv_lastupdated