我使用的是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'
我的映射中有什么问题吗?如何使术语查询工作在*, - ,+等特殊字符上。感谢任何帮助
答案 0 :(得分:2)
术语查询使用关键字数据类型。 title.special是一个文本数据类型。要使术语查询工作,您必须更改title.special映射 看看这里,为什么术语查询与我的文档不匹配? https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html