如果我有人物收藏品。每个人可能有多种爱好。 (例如跑步,登山,游泳,跳跃杰克)。
我如何将所有这些attrubutes的单个人编入索引,以便我可以对他们应用一个方面?有人可以提供一个样本哦,如何在以下情况下索引数据:
Person | Hobbies
Joe | Chess, Jumping Jacks, Swimming
Person | Hobbies
Bob | Rowing
我如何才能获得“兴趣爱好”关键的方面? (请注意,“Jumping Jacks”是单个值,但是用空格分隔单词。
答案 0 :(得分:0)
如果您想要搜索爱好字段并在其上制作一个方面,则需要使用multi_field。这就是你可以用不同方式索引相同字段的方法。通常,搜索版本需要进行标记化,至少是小写的,如果需要,还需要依赖于语言的分析,而facet版本甚至不需要进行分析,因为facet条目需要与源文档中的相同
{
"people" : {
"properties" : {
"hobbies" : {
"type" : "multi_field",
"fields" : {
"hobbies" : {"type" : "string", "index" : "analyzed"},
"facet" : {"type" : "string", "index" : "not_analyzed"}
}
}
}
}
}
上述映射会为输入相同的hobbies
字段创建两个不同的字段。第一个,您可以使用默认standard analyzer使用hobbies
名称在查询中引用;第二个没有被分析,可以用于方面。您可以将其称为hobbies.facet
。
因此,您可以搜索jumping
并找到匹配项,但您的方面将如下所示:
国际象棋(1)
跳跃千斤顶(1)
游泳(1)
兴趣爱好(1)
划船(1)