如何获取带有空格的搜索词作为一个搜索词

时间:2015-02-09 14:42:05

标签: elasticsearch

我有一个弹性搜索索引,带有一个名为“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术语。将它括在引号中似乎也没有帮助。

1 个答案:

答案 0 :(得分:0)

您需要使用term query - 术语查询在应用搜索之前不会对字符串进行分析/标记。

{
  "query": {
    "term": {
      "user": "kimchy"
    }
  }
}