我有一个映射为文本的字段,其中包括另一个映射为关键字的字段(fields关键字)。我插入数据,并确保可以使用任何查询检索数据。但是,查询附加字段(映射为关键字)时,根本找不到任何数据。 这是示例(简化):
POST people/_mapping/_doc
{
"properties": {
"name": {
"type": "text"
},
"bio": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
这是一个查询:
POST people/_search
{
"query": {
"match": {
"bio.keyword": "Portugal"
}
}
}
无论套管如何(葡萄牙与葡萄牙),都会发生相同的情况。这种行为的原因是什么?
答案 0 :(得分:1)
在elasticseach中,如果您有文本类型字段,请说description
。
描述值之一是:He likes dog but hate cat.
此字段的还原索引为:He/like/dog/but/hate/cat
还有另一个“关键字”字段,它是description.keyword,它恰好是He likes dog but hate cat.
关键字字段需要100%匹配。
答案 1 :(得分:0)
知道了
关键字字段只能按其确切值进行搜索
参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html