文章正文

ES精确查询与模糊查询的几种方式

【文档】2020-04-23

简介ES精确查询与模糊查询的几种方式

  • term:单字段精确查询;

"term": {
   "form_name": "测试"
}


  • keyword。因为keyword字段不会进行分词

"term": {
    "name.keyword": "测试"
}
  • match_phrase :单字段半精确查询(mysql-like模糊查询)

"match_phrase": {
    "form_name": "测试"
}

//match_phrase是短语搜索,即它会将给定的短语(phrase)当成一个完整的查询条件。
//mach_phrase类似like模糊查询,会查出含有该查询条件的内容。
  • terms:多字段精确查询:

"terms": {
        "form_name": ["测试", "运行", "对比"]
}
  • 查询索引的结构

//text带keyword
"title" : {
	"type": "text",
	"fields": {
		"keyword": {
			"type": "keyword",
			"ignore_above": 256
		}
	}
}
//text
"title" : {
	"type": "text"
}

text:会分词,ES会先把对象进行分词处理,然后再再存入到索引。text就无法使用term查询,可以用match,就无法准确匹配。

keyword:不分词,直接整个存入索引。可以进行完整地查询!默认是256个字符

打赏支持

感谢您的支持,加油!

打开微信扫码打赏,你说多少就多少

找书费时,联系客服快速获取!

扫码支持

在线客服8:30-22:30,若离线请留言!

获取教程,请联系在线客服!

扫码支持

在线客服8:30-22:30,若离线请留言!

热门阅读

找PDF电子书,太费时间?

  • 微信扫描二维码,让客服快速查找。
  • 在线客服8:30-22:00,若离线请留言!