Ruby on rails 多个筛选器无法使用elasticsearch rails
在我的发票模型中,我在3个单独的方法中定义了3个术语过滤器。查询工作正常,但有时仅对查询应用筛选器。 如果我更改过滤器的顺序,则仅应用顶部过滤器,其余两个过滤器将被忽略 以下是型号代码:Ruby on rails 多个筛选器无法使用elasticsearch rails,ruby-on-rails,
elasticsearch,Ruby On Rails,
elasticsearch,在我的发票模型中,我在3个单独的方法中定义了3个术语过滤器。查询工作正常,但有时仅对查询应用筛选器。 如果我更改过滤器的顺序,则仅应用顶部过滤器,其余两个过滤器将被忽略 以下是型号代码: Invoice.search(self.search_options(options, qry)) def self.search_options(options, qry) [query(qry), status_filter(options[:status]), state_filter(
Invoice.search(self.search_options(options, qry))
def self.search_options(options, qry)
[query(qry),
status_filter(options[:status]),
state_filter(options[:invoice_state]),
office_filter(options[:current_office_id]),
aggregates
].compact.reduce(:merge)
end
def self.status_filter(status)
{filter: {term: {invoice_status: status}}}
end
def self.state_filter(state)
{filter: {term: {state: state}}}
end
def self.office_filter(current_office_id)
{filter: {term: {office_id: current_office_id}}}
end
我如何一次应用所有3个过滤器?你能代表rails代码共享等价的查询DSL吗?{Query:{bool:{must:[{match_all:{},{term:{invoice.office_id:someid},{term:{invoice.invoice_状态:active}}],must not:[],should:[]},from:0,size:10,sort:[],facets:{}复制你的查询时,我在查询DSL中发现两个错误。我尝试过类似的查询,它对我很有效@Roopendra多个过滤器对你来说可以吗?是的,多个过滤器应该可以。请参考我在qbox中共享的查询。