我有一个弹性搜索索引,带有一个名为“name”的字段,其映射如下:
"name": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
},
现在让我说我有一个“布鲁克林技术高中”的记录。
我希望有人搜索“brooklyn t *”才能显示出来。例如:http://myserver/_search?q=name:brooklyn+t*
然而,这似乎是对搜索术语进行标记,并搜索“brooklyn”和“t”,因为我得到的结果如下:“Ps 335 Granville T Woods”。
我希望用整个术语搜索not_analyzed术语。将它括在引号中似乎也没有帮助。
答案 0 :(得分:0)
您需要使用term query - 术语查询在应用搜索之前不会对字符串进行分析/标记。
{
"query": {
"term": {
"user": "kimchy"
}
}
}