我正在使用 Tire/ElasticSearch 创建数据库中所有标签的字母浏览。但是,轮胎搜索会返回我想要的标签以及与同一项目关联的所有其他标签。因此,例如,如果我的字母是“A”并且一个项目具有标签“土豚”和“饼干”,那么“土豚”和“饼干”都会显示为“A”查询的结果。我怎样才能构造它以便我只得到'土豚'?
def explore
#get alphabetical tire results with term and count only
my_letter = "A"
self.search_result = Tire.search index_name, 'tags' => 'count' do
query {string 'tags:' + my_letter + '*'}
facet 'tags' do
terms 'tags', :order => 'term'
end
end.results
end
映射:
{
items: {
item: {
properties: {
tags: {
type: "string",
index_name: "tag",
index: "not_analyzed",
omit_norms: true,
index_options: "docs"
},
}
}
}
}