[英]How to remove _source from search results in Tire gem for elasticsearch
[英]Exclude indexed data in search results - elasticsearch (tire)
我正在尝试通过轮胎宝石将Elasticsearch用于多租户应用程序。 该应用程序有许多帐户,每个帐户都有许多用户。
现在,我想根据帐户ID为用户编制索引。
用户模型:
include Tire::Model::Search
mapping do
indexes :name, :boost => 10
indexes :account_id
indexes :company_name
indexes :description
end
def to_indexed_json
to_json( :only => [:name, :account_id, :description, :company_name],
)
end
搜索查询:
User.tire.search do
query do
filtered do
query { string 'vamsikrishna' }
filter :term, :account_id => 1
end
end
end
过滤器工作正常,并且仅显示过滤后的帐户ID(1)的结果。 但是,当我搜索查询字符串1时:
User.tire.search do
query do
filtered do
query { string '1' }
filter :term, :account_id => 1
end
end
end
假设有一个名为1的用户。在这种情况下,将为帐户ID为1的所有用户以及该用户显示结果。 这是因为我在to_indexed_json中添加了account_id。 现在,如何只显示名称为1的用户? (所有用户都不能在匹配中使用。仅显示名称为1的用户)
当没有用户使用名称或公司名称或描述作为1时,我只是不希望显示任何结果。 但是,按照我的解释,我将使所有用户都进入帐户ID 1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.