Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用ElasticSearch和Tire仅在搜索存在时按属性筛选搜索?_Ruby On Rails_Ruby_Full Text Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Tire - Fatal编程技术网 elasticsearch,tire,Ruby On Rails,Ruby,Full Text Search,elasticsearch,Tire" /> elasticsearch,tire,Ruby On Rails,Ruby,Full Text Search,elasticsearch,Tire" />

Ruby on rails 如何使用ElasticSearch和Tire仅在搜索存在时按属性筛选搜索?

Ruby on rails 如何使用ElasticSearch和Tire仅在搜索存在时按属性筛选搜索?,ruby-on-rails,ruby,full-text-search,elasticsearch,tire,Ruby On Rails,Ruby,Full Text Search,elasticsearch,Tire,现在我写了 Tire.search INDEX_NAME do query do filtered do query { string term } filter :or, { missing: { field: :app_id } }, { terms: { app_id: app_ids } } end end end.results.to_a 返回没有app_id或与您的术语匹配的项目听起来像是一个或过滤

现在我写了

Tire.search INDEX_NAME do
  query do
    filtered do
      query { string term }
      filter :or, { missing: { field: :app_id } },
                  { terms: { app_id: app_ids } }
    end
  end
end.results.to_a

返回没有app_id或与您的术语匹配的项目听起来像是一个或过滤器的工作-我会试试

filter :or, [
    {:not => {:exists => {:field => :app_id}}},
    {:terms => {:app_id => app_ids}}
  ]

您的解决方案比我的
缺少的
过滤器有什么优势<代码>过滤器:或,{missing:{field::app_id}}
不要这样认为,尽管我写文章时你丢失的东西不在那里