【问题标题】:ElasticSearch/Tire only returning results for one indexElasticSearch/Tire 只返回一个索引的结果
【发布时间】:2013-11-19 07:24:28
【问题描述】:

现在我有以下代码:

search = Tire.search ['object1_index', 'object2_index'] do |search|
  search.query { string params[:q] }
end

@results = search.results

现在的结果都来自 object1,但是,如果我使用相同的查询删除 'object1_index',我会得到 object2 结果。如何让我的搜索同时与两个索引交互?

编辑:

我现在有以下内容(使用我在模型上定义的搜索),但由于我最终会添加分页,我不确定这是否是最好的解决方法:

object1_results = Object1.search(params).results
object2_results = Object2.search(params).results
@results = object1_results + object2_results
@results.sort!(&:_score) 

【问题讨论】:

    标签: ruby-on-rails ruby rubygems elasticsearch tire


    【解决方案1】:

    只需添加 size 参数,因为 elasticsearch 默认大小为 10,在您的情况下必须仅限于 object1_index 搜索空间

    search = Tire.search ['object1_index', 'object2_index'], size: 1000 do |search|
    ...
    

    更新

    分页可以加from参数

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多