【问题标题】:elasticsearch multi_match with phrase_prefix not working带有短语前缀的弹性搜索多匹配不起作用
【发布时间】:2018-03-23 14:22:57
【问题描述】:

我正在我的索引上运行以下搜索查询

{
  "_source": "false", 
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "fields": ["email","name", "company",  "phone"],
            "query": "tes",
            "type" : "phrase_prefix"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {"name": {}, "company" : {}, "email" : {}, "phone" : {}}
  }
}

我有一些带有字段值的示例数据

name: test paddy
name : test user
name : test logger
name : test

当我运行上述查询时,我没有得到任何结果,但是当我将其更改为 "query": "test" 时,我开始看到 1 个结果“测试”。我期待在这两种情况下都能看到我拥有的所有上述名称。我在这里遗漏了什么吗?

更新 我还注意到这适用于文本字段,但在关键字、长字段等方面失败了另外,当我尝试时

{ "query": {
    "prefix" : { "phone" : 99 }
  }
}

使用数字字段和关键字字段。

是不是 multi_match 和 prefix 不适用于关键字和数字字段?

【问题讨论】:

  • 你用的是哪个版本,我在2.4.4测试过,效果很好。
  • 我使用的是 5.5.2 版本。电话字段是号码,所有其他字段都是关键字。这有什么影响吗?
  • 我还注意到这适用于文本字段,但无法使用关键字、长字段等。

标签: elasticsearch


【解决方案1】:

问题是我在关键字字段上运行它。我把它改成文字,像个美女一样工作。应该更清楚地阅读文档!

【讨论】:

  • 您说您将其从关键字字段更改为文本是什么意思?我提出了同样的问题:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2018-04-21
相关资源
最近更新 更多