У меня есть модель публикации, в которой есть избиратели. в Elastic Search я проиндексировал Post, так что у меня есть следующие данные примера: name: 'My first post', voter_ids: [1,2,3]
. Я пытаюсь искать сообщения, чтобы получить результаты только для данного voter_ids. Например, если поиск говорит 1,2
, я хочу получить My first post
в результатах поиска с тех пор, как у него есть voter_ids 1 и 2, но если поиск 1,5
, я не должен видеть это сообщение в результатах, поскольку избиратель 5 никогда не голосовал на этом посту. следующий код возвращает все сообщения, на которые указана какая-либо из указанных избирателей. так что это похоже на OR-ing. То, что я ищу, - это И.шина эластичный фильтр поиска по ассоциации ids
@posts = Post.search(load: true) do |tire|
tire.filter :terms, :voter_ids => voter_ids
end