Ruby on rails 多重弹性搜索过滤器
我使用Tire for rails集成elasticsearch。这一点很让人困惑,我想确保我做得对 这就是我应用多个过滤器的方式吗?我基本上是想检查“混音带id为空,艺术家id不为空”Ruby on rails 多重弹性搜索过滤器,ruby-on-rails,ruby-on-rails-4,
elasticsearch,tire,Ruby On Rails,Ruby On Rails 4,
elasticsearch,Tire,我使用Tire for rails集成elasticsearch。这一点很让人困惑,我想确保我做得对 这就是我应用多个过滤器的方式吗?我基本上是想检查“混音带id为空,艺术家id不为空” def self.search(query) tire.search() do query { string query } filter :exists, { field: 'artist_id' } filter :not, { exists: { fiel
def self.search(query)
tire.search() do
query { string query }
filter :exists, { field: 'artist_id' }
filter :not, { exists: { field: 'mixtape_id' } }
end
end
这是我的第二次尝试,似乎仍然不起作用
def self.search(query)
tire.search(load: true) do
query { string query }
filter :and, [
{ exists: { field: 'artist_id' } },
{ not: { exists: { field: 'mixtape_id' } } }
]
end
end
谢谢我大部分时间都在使用它,每次我都愚蠢地忘记了强制重新编制索引。下面是一些已清理的代码,它利用了
缺少的
过滤器
def self.search(query)
tire.search load: { include: { artist: :attachments } } do
query { string query }
filter :and, [
{ exists: { field: 'artist_id' } },
{ missing: { field: 'mixtape_id' } }
]
end
end