0
我试图通过轮胎宝石的elasticsearch使用多租户应用程序。该应用拥有多个帐户,每个帐户拥有多个用户。排除搜索结果中的索引数据 - 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.
感谢您的答复@javanna独自我这里......它不只是名称字段。我确实有其他字段,如用户描述,公司名称以及索引。在那种情况下,我该如何在用户模型上运行搜索?请帮忙。 –
我不明白:你想在哪里搜索'1'?我只想到名字领域。如果你想在多个领域进行搜索,你可以使用查询字符串来指定要搜索的“fields”。 – javanna
我很抱歉发布这样的问题。该字符串可以在多个字段中。如果没有用户名为1或公司名称或说明的用户,我只是不希望显示任何结果。但是,在我的情况下,正如我所解释的,我将获得帐户ID为1的所有用户。我现在将编辑该问题。 –