query_string查询多值字段问题请教

查询语法:{
"query_string": {
  "query": "name:南京市长",
  "default_operator": "and"
  }
}
 
其中name为多值字段,例如:
 
"name": [
南京
,
"市长"
,
"江苏"
,
"政府"
]
 
当搜索关键词为“南京市长”时,以上文档也能匹配,有没有办法实现,只有文档的name字段中某一个值完全包括搜索关键字时才能匹配,而不是name的多个值联合起来匹配
 
已邀请:

luohuanfeng

赞同来自: kennywu76 elisha zpc870921

能使用term查询么

kennywu76 - wood@Ctrip

赞同来自: elisha

1楼说的Term Query是正解,查询语法:
{
"query": {
"term" : { "name" : "南京市长" }
}
}

the_best

赞同来自:

你使用的auto mapping还是自己设置的mapping,能把这个字段的mapping设置截图上来吗?不然别人都不清楚你索引时是如何处理的。

elisha - 80后 IT

赞同来自:

mapping中name字段的配置如下:(采用的是ansj中文分词器)
 "name": {

"search_analyzer": "query_ansj",
"analyzer": "index_ansj",
"type": "string"

}

要回复问题请先登录注册