Elasticsearch:术语搜索不处理特殊字符

时间:2017-11-13 23:10:06

标签: elasticsearch tokenize analyzer mappings

我使用的是Elasticsearch最新版本5.6.4。我想索引特殊字符并搜索字段 title.special 。以下是我的映射:

GET index1/_search
{
  "query": {
    "term": {
      "title.special": {
        "value": "-unconstrained_net_use_inf_tw"
      }
    }
  }
}

当我使用术语查询在Kibana中查询时,

GET index1/_search
{
  "query": {
    "match": {
      "title.special": {
        "value": "-unconstrained_net_use_inf_tw"
      }
    }
  }
}

什么都没有回来。但是当我进行匹配搜索时,文档会返回。例如。

import './polyfills.ts'

我的映射中有什么问题吗?如何使术语查询工作在*, - ,+等特殊字符上。感谢任何帮助

1 个答案:

答案 0 :(得分:2)

术语查询使用关键字数据类型。 title.special是一个文本数据类型。要使术语查询工作,您必须更改title.special映射 看看这里,为什么术语查询与我的文档不匹配? https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html