我正在使用Tire for rails来整合elasticsearch。这一点很混乱,我想确保我做得对。
这是我应用多个过滤器的方式吗?我基本上试图检查'mixtape_id IS NULL AND artist_id IS NOT NULL'
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
由于
答案 0 :(得分:0)
我大部分时间都在使用它,我愚蠢地忘记了每次强制重新索引,但叹息。以下是一些利用missing
过滤器的清理代码。
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