如何在Elasticsearch中找到确切的短语?

时间:2017-03-09 11:54:38

标签: elasticsearch

我有字段"name":"The leonardo da vinci"。在映射中,此字段由标准分析器分析。当我在此字段上使用match_phrase时,它也会匹配The leonardo da vinci USThe leonardo da vinci UKThe leonardo da vinci GBR等文档。

如何在不更改映射的情况下获取仅"name":"The leonardo da vinci"的文档?

有可能吗?

由于

1 个答案:

答案 0 :(得分:0)

如果您正在寻找完全匹配,则不需要使用匹配词组,只需使用术语查询。

{
  "query": {
    "term": {
      "name":"The leonardo da vinci" 
    }
  }
}

检查this以获取有关期限与全文搜索的更多信息。

编辑:如果是分析字段,您可以为其添加一个子字段:

'name': {
  'type': 'text',
  'fields': {
    'raw': {
      'type': 'keyword'
    }
  }
}

通过填充namename.raw来重新编制索引,然后您可以在name字段上使用带有全文搜索的匹配查询,并在{{1}上使用术语查询进行精确搜索}。