Lucene.Netを使って検索機能を実装しました。この指数には、「Aレベル」を含む英国の学術資格が含まれています。Lucene.Net - スペース区切りのフレーズを単一のトークンとして扱うには?
「A Level」というフレーズで検索することができますが、標準アナライザーを使用すると「A」はストップワードとして取り除かれ、「レベル」のみがインデックス/検索されます。
これを回避するにはどうすればよいですか?私はどうにかして "Aレベル"を "Aレベル"にトークン化したり、カスタムアナライザを作成したりする必要があると推測しています。
これが最善のアプローチですか?
編集:私は、全体の検索フレーズクエリにしたくないたく
注意。つまり、私の検索ボックスで、ユーザに< "A Level" AND English Maths Physics>を入力させ、 "A Level"と英語の数学または物理のいずれかを返すようにします。これを反映するように質問が更新されました。私は特にアパートレベル "から、すべてのケースでストップワードとして「A」の使用を維持したいと思い
フレーズ「レベル」は、それ自身の特定の分野ではないが、それは中ですフレーズを含む可能性のあるフリーテキストフィールド。
しかし、私は全体の検索フレーズクエリになりたくないしたいです。すなわち、私の検索ボックスで、ユーザがを入力できるようにして、これは" A Level "と英語の数学または物理のいずれかを返します。これを反映するように質問が更新されました。 –
@Gareth D - 私の編集を参照 – Dewfy
@Dewfy - それでも問題は解決しないのですか?すなわち「Aレベル」の「A」は標準アナライザによってストップワードとして取り除かれ、フレーズクエリは「Aレベル」ではなく「レベル」のすべてのインスタンスを返すことになる。 –