全文検索を利用したサイトの検索を作成しています。検索自体はうまく機能しますが、それは私の問題ではありません。ユーザー提供のキーワード(MATCH ... AGAINST ...)とANDをつなぎ合わせて、複数の単語で結果をさらに絞り込みます。今、私は特定のストップワードが索引付けされていないことを知っています、そしてそれは私にとっては問題ありません、私はそれらを選択基準として本当に使いたくありません。ただし、ストップワードが(ユーザーによって)キーワードセットに指定されている場合、その単語が実際に特定のテキストブロックにある場合でも、(予想どおりに)すべての結果が強制終了されます。
私の質問:クエリ時に特定の単語がストップワードであるかどうかを確認する方法はありますか?私の好ましい解決策は、関連する単語を検索条件から除外することです(ユーザーが「どちらでもない」という単語で結果を絞り込むことができるかどうかは関係ありません。ユーザーが空の結果セットを返さないようにするだけです。結果にどちらも存在しない場合でも、それを提供します)。または、ストップワードリストを空にする必要がありますか?助けてくれてありがとう。
編集----申し訳ありませんが、これを提供するコードスニペットは実際にはありません。コードは正常に機能しますが、実際には期待どおりです。それは私が扱っている論理的な問題です。しかし、例として、説明の方法で:
単語を含む3つのレコードがあるとしましょう(ただし、これらに限定されません)
1:リンゴ、オレンジ、マンゴー、バナナ2:ブドウ、オレンジ、パイナップル、マンゴー3:ジャガイモ、マンゴー、メロン、キーラナイトレイ
ユーザーが入力した検索語がmangoの場合、すべての結果が正しく返されます。単語がオレンジとマンゴーの場合、結果1と2が(正しく)返されます。ここで、バナナがストップワードであるとしましょう(そうではありません...しかし、そうであると仮定しましょう)。検索がオレンジ、マンゴー、およびバナナの場合、結果は返されません(バナナは全文インデックスにないため)。
私が探しているのは、他の誰かがこの問題に遭遇し、それを回避する方法があるかどうかです。一種の:
if 'banana' NOT STOP WORD match 'banana' against `words`. (OBVIOUSLY not real code).
または...ストップワードリストを削除する必要がありますか...