我正在使用Elasticsearch进行多个单词的[部分]查找。我按空间划分搜索查询,并为每个单词创建一个“ multi_match”节点。
这是完整单词列表的示例:
这是当我搜索“ hi road”时生成的示例搜索查询
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "hi",
"fields": [
"full_text"
],
"type": "phrase_prefix"
}
},
{
"multi_match": {
"query": "road",
"fields": [
"full_text"
],
"type": "phrase_prefix"
}
}
]
}
},
"size": 200
}
我希望它会返回“山路”和“高花园路”。
现在,如果我搜索“ h道路”,则仅返回“ H&M牛津道路”,但我希望它会返回所有4个项目。这是为什么?每个multi_match查询至少有两个字母吗?如果是这样,我该如何克服?
谢谢