我有一个这样的索引
{
"_index": "entities",
"_type": "names",
"_id": "0000230799",
"_score": 1,
"_source": {
"FIRST_NAME": [
"Deborah",
"Debbie"
],
"LAST_NAME": "Jones"
}
}
我尝试对名称进行匹配查询,但除非第一个名称是准确的,否则没有命中返回
我希望下面的查询能够生成至少一个命中并对其进行评分,我错了吗?
curl -XPOST 'http://localhost:9200/entities/names/_search?pretty=true' -d '
{
"query": {
"match":{
"FIRST_NAME":"Deb"
}
}
}'
我的映射是
{
"entities": {
"mappings": {
"names": {
"_parent": {
"type": "entity"
},
"_routing": {
"required": true
},
"properties": {
"FIRST_NAME": {
"type": "string"
},
"LAST_NAME": {
"type": "string"
}
}
}
}
}
}
答案 0 :(得分:3)
此处的问题与多个值无关,但您假设match
- 查询将匹配以您的输入开头的任何内容。它没有。
在匹配系列查询中,match_phrase_prefix
可能值得一试。这里将对此进行更详细的解释:http://www.elasticsearch.org/blog/starts-with-phrase-matching/
还有prefix
- 查询,但请注意,它不会进行任何文本分析。
有关文本分析的一般介绍,我可以推荐这两篇文章: