0

有権者を持つ Post モデルがあります。Elastic Search では、Post にインデックスを付けて、サンプル データを次のようにしname: 'My first post', voter_ids: [1,2,3]ました。特定のvoter_idの結果のみを取得するように、投稿を検索しようとしています。たとえば、検索結果が である場合、voter_ids 1 および 2 があるため結果1,2を取得したいのですが、検索結果が である場合、有権者 5 がその投稿に投票したことがないため、結果にその投稿が表示されません。次のコードは、voter_ids のいずれかが指定されているすべての投稿を返します。OR-ingのようなものです。私が探しているのは AND です。My first post1,5

@posts = Post.search(load: true) do |tire|
  tire.filter :terms, :voter_ids => voter_ids
end
4

1 に答える 1

3

これに相当するものを作成します。

"filter" : {
    "terms" : {
        "voter_ids" : ["1", "2"],
        "execution" : "and"
    }
}

elasticsearch docs を読むと、に設定できるフィルターのexecutionパラメーターがあります。termsand

幸運を!

于 2013-07-27T20:35:39.973 に答える