ElasticSearch 数据查询

ElasticSearch 数据匹配

match 匹配

match 进行分词匹配
{
	"query": {
		"match": {
			"field": "value"
		}
	}
}
term 过滤
精确匹配一个值
{
	"query": {
		"term": {
			"field": "value"
		}
	}
}
查询匹配多个值
{
	"query": {
		"terms": {
			"field": ["value", "value"]
		}
	}
}
range 过滤
查询范围值
{
	"query": {
	    "range": { 
			"id": { 
	        	"gte":  744718, 
	            "lt":   744728 
	        } 
	    } 
	}
}
属性描述
gt大于
gte大于等于
lt小于
lte小于等于
exists 和 missing 过滤
查询文档中是否包含某个字段
{
	"query": {
		"exists": {
			"field": "city"
		}
	}
}
bool 查询

查询

{
	"query": {
		"bool": {
			"must": {
				"match": {
					"city": "金"
				}
			}
		}
	}
}

boot 多条件判断

{
	"query": {
		"bool": {
			"must": [
				{"terms": { "qq": ["2491920818", "3183788520"] }}, 
				{"term": { "type": 0 }},
				{"term": { "city.keyword": "广州市" }}
			]
		}
	}
}
字段类似描述
mustAND查询指定文档一定要被包含。
must_notNOT AND查询指定文档一定不要被包含。
shouldOR嵌套查询只要满足一个就OK
wildcards 查询

可以使用通配符进行查询

{
	"query": {
		"wildcard": {
			"city": "*广*"
		}
	}
}
regexp 查询

可以通过正则表达式来进行匹配

{
	"query": {
		"regexp": {
			"city": "广"
		}
	}
}
prefix 查询

以什么字符开头的,可以更简单地用 prefix,如下面的例子:

{ 
  "query": { 
    "prefix": { 
      "city": "广" 
    } 
  } 
}
match_phrase 查询

将这个查询条件作为一个词进行分词匹配,match 会将查询条件再次分词进行分词匹配

{
  "query": {
    "match_phrase": {
      "city": "广"
    }
  }
}
highlight 高亮搜索
{
	"query": {
		"match": {
			"qq": 5124
		}
	}, "highlight": {
		"fields": {
			"qq": {}
		}
	}
}
注意:

matchmatch_phrase 查询的区别!

  • match : 先将查询条件进行分词,后以分词 去 ES 中匹配数据
  • match_phrase : 将查询条件在 ES 分词中匹配数据

查询不出想要的数据时可以看看该字段是否有进行分词

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值