【问题标题】:Elasticsearch query match element in array数组中的 Elasticsearch 查询匹配元素
【发布时间】:2013-11-12 04:44:11
【问题描述】:

在我的项目中,如果 user_id 匹配,我想提升 PersonRecord 的搜索结果。每个 PersonRecord 都有一个 user_ids 数组(那些用户拥有该 PersonRecord)。现在我想将名称和 user_id 传递给搜索,并希望返回与名称完全匹配的内容,如果 user_id 中有匹配项,则提升搜索结果。代码如下:

  results = PersonRecord.search do |search|
    search.query do |query|
      query.boolean do |m|
        m.must {match 'name.full', 'David Butler'}
        m.should {|m| m.term 'user_ids', user.id, :boost => 100}
      end
    end
  end

注意这里 user_ids 是 user_id 的数组,user.id 是字符串。我应该在查询中使用术语还是 ID?还是匹配?有什么建议?术语是否将数组与字符串进行比较?谢谢。

【问题讨论】:

    标签: ruby indexing elasticsearch tire


    【解决方案1】:

    您可以为此使用术语

    m.should { m.terms 'user_ids', [user ids array], :boost => 100}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 2021-01-15
      • 2016-10-10
      • 1970-01-01
      • 2021-03-18
      • 2013-01-22
      相关资源
      最近更新 更多