首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch-Rails multi_match字段

ElasticSearch-Rails multi_match字段
EN

Stack Overflow用户
提问于 2016-12-23 17:43:45
回答 0查看 437关注 0票数 0

我的模型关联:

代码语言:javascript
复制
class CertificatePeriod < ActiveRecord::Base
  has_many :certificate_orders
  has_many :order_transactions, through: :certificate_orders
end

class CertificateOrder < ActiveRecord::Base
  belongs_to :user
  belongs_to :certificate_period
  has_one :order_transaction
end

class OrderTransaction < ActiveRecord::Base
  belongs_to :certificate_order
end

在OrderTransaction模型中:

代码语言:javascript
复制
class OrderTransaction < ActiveRecord::Base
  def as_indexed_json(options={})
    self.as_json(only: [:id, cardholdername, :userid],
    include: {certificate_order: {include: {user: {only: [:first_name, :last_name], methods: :full_name}}}})
  end
end

此索引的示例响应:

代码语言:javascript
复制
{"id"=>7235,
 "cardholdername"=>"NUR SARUHAN",
 "userid"=>"zzzyyyxxxx",
 "certificate_order"=>
  {"id"=>292,
   "user_id"=>13186,
   "certificate_enrollment_id"=>768,
   "slug"=>"eafe0be5-0b1f-4e4f-8929-d3f9330a4a86f7c25b1199dcd5",
   "created_at"=>Mon, 11 Apr 2016 18:30:58 EEST +03:00,
   "updated_at"=>Mon, 11 Apr 2016 18:30:58 EEST +03:00,
   "user"=>{"first_name"=>"Nur", "last_name"=>"SARUHAN", "full_name"=>"NUR SARUHAN"}}}

我使用过类似这样的搜索查询:

代码语言:javascript
复制
query: {
  bool: {
    must: [
      {ids: {values: @certificate_period.order_transactions.pluck(:id)}},
      {bool: {
        should: [
          {multi_match: {query: params[:q], fields: ['cardholdername', 'certificate_order.user.first_name']}}
        ]
      }}
    ]
  }
}).records.to_a

我的问题是:

实际上,这个搜索查询是有效的,但是以下几行返回的是完全相同的记录。

代码语言:javascript
复制
{multi_match: {query: params[:q], fields: ['cardholdername', 'certificate_order.user.first_name']}}

代码语言:javascript
复制
{multi_match: {query: params[:q], fields: ['cardholdername']}}

如果我只是在multi_match字段中使用certificate_order.user.first_name作为参数,它将返回一个空数组。所以没有certificate_order.user.first_name的影响。我已经用谷歌搜索了3天,但我没有找到正确的答案。如何获取certificate_order.user.first_name参数的值?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41298907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档