4

私は、カスタムの順序で単純な結果を返す単純な検索を設定しようとしています。私が返す順序は、カスタムのスコアに基づいて問題ありません。

問題は、このクエリの場合です

"query": {
    "query_string": {
        "query": query_term,
        "fields": ["name_auto"],
    }
}

注:name_autoは、エラスティックのEdgeNグラムフィールドです。

クエリが意味をなさない場合でも、常に結果セットを取得します。

例:

すべてのAndroidアプリケーションの名前が入力されたelastcisearchインデックスがあります。を検索すると、それに関連するすべての結果が、Playストア、メナン[facebook、facebook messenger、...]のコメント数順に並べられて返されます。

問題は、facesomeuselesscharsのようなものをクエリしても、以前と同じ結果が得られることですが、「someuselesschars」に一致するものがないことを確認してください。

誰かが助けることができます

4

1 に答える 1

4

結果のスコアが低くても、ElasticSearch は常にクエリに一致する結果を返します。「facesomeuselesschars」のクエリは、ngram のために「face」を含むすべてのものと一致します (たとえば、クエリの最初の 4 文字は、インデックス内の複数のトークンと一致します)。

クエリの残りの文字は、返される一致のスコアを下げるだけですが、返されるのを妨げるものではありません。

結果が到達しなければならない最小スコアを設定する場合は、min_scoreパラメータを使用できます。

于 2013-02-14T14:33:12.950 に答える