Solrインスタンスでステミングを有効にしました。ステミングを無効にせずに正確な単語検索を実行するには、単語を引用符で囲むのと同じくらい簡単だと思いました。しかし、これはそうではないようですか?
これを達成する簡単な方法はありますか?
参照しているのがあいまい検索の一部としての「スロップ」(必要な類似性)である場合、簡単な方法があります(ここでLuceneクエリ構文を参照してください)。
たとえば、この検索を実行すると、次のようになります。
q=field_name:determine
「determine」、「determining」、「determined」などを含む結果が表示されます。次に、次のようにクエリを変更すると、次のようになります。
q=field_name:determine~1
「determine」という単語を含む結果のみが表示されます。これは、必要な類似度1を指定しているためです。これは、「完全一致」を意味します。この値は0から1までのどこでも指定できます。
もう1つできることは、あるフィールドでステミングせずに、別のフィールドでステミングして同じテキストにインデックスを付けることです。ステム化されていないフィールドをブーストします。ステム化されたバージョンよりも正確なバージョンの単語を優先する必要があります。もちろん、引用符で囲まれたフレーズをステム化されていないフィールドのみに転送する独自のクエリパーサーを作成することもできます。