繁体   English   中英

通过轮胎进行Elasticsearch中的路由字段

[英]Routing field in elasticsearch via tire

我正在尝试通过轮胎宝石将Elasticsearch用于多租户应用程序。 该应用程序有许多帐户,每个帐户都有许多用户。

用户模型:

  include Tire::Model::Search
  mapping do
    indexes :name, :boost => 10
    indexes :account_id
    indexes :company_name
  end

  def to_indexed_json
    to_json( :only => [:name, :account_id, :company_name], 
       )
  end

我想添加基于account_id的路由。 请帮助如何实现。 我看到有两种方法可以指定路由。

  1. 在使用路由字段进行映射期间
  2. 使用别名

我对第一种选择感兴趣。 我看到_routing可以作为哈希添加到映射部分。

  mapping :_routing => { :required => true, :path => :account_id } do
    indexes :name, :boost => 10
    indexes :account_id
    indexes :company_name
  end

搜索查询:

  User.tire.search do
    query do
      filtered do
          query { string('ovamsikrishna@gmail.com') },
          filter :term, :account_id => 2
      end
    end
  end

我们是否需要在搜索查询中指定任何内容? 当我指定上面指定的映射(带有路由)时,索引编制没有发生。 如果不进行路由,则工作正常。

添加account_id作为路径可以帮助您在1个分片上累积所有相同的帐户数据。

建议还在搜索查询中使用路由,以避免在每个分片上都命中搜索查询。

使用Get Mapping API来验证是否正确设置了映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM