[英]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的路由。 请帮助如何实现。 我看到有两种方法可以指定路由。
我对第一种选择感兴趣。 我看到_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.