Elasticsearch部分multi_match至少2个字母?想要更改为最少1个字母

时间:2019-03-21 17:12:50

标签: elasticsearch lucene

我正在使用Elasticsearch进行多个单词的[部分]查找。我按空间划分搜索查询,并为每个单词创建一个“ multi_match”节点。

这是完整单词列表的示例:

  • 山路
  • 高花园路
  • H&M牛津路
  • 哈默史密斯路

这是当我搜索“ 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查询至少有两个字母吗?如果是这样,我该如何克服?

谢谢

0 个答案:

没有答案