GET查询方式:
特点:最简单的查询方式,类似key-value键值对查询方式,而且实时可靠
#查询索引名为index-name,id为id的记录
GET /{index-name}/_doc/{id}
#条件组合查询,同时查出索引名为product_codes,记录id为1089和1088的记录
GET /_mget
{
"docs": [
{
"_index": "product_codes",
"_id": 1089
},
{
"_index": "product_codes",
"_id": 1088
}
]
}
或
GET /product_codes/_mget
{
"ids": [
"1088",
"1089"
]
}
或
GET /product_codes/_mget
{
"docs":[
{
"_id":"1089"
},
{
"_id":"1088"
}
]
}
_source:是否需要返回原数据
_source_includes:原数据返回包含字段
_source_excludes:原数据返回忽略字段
routing:分片路由字段
preference:分片选择,默认是RoundRobin算法,可选择local本地优先
refresh:设置索引强制刷新,取值返回true,false
version:数据版本
store_fields:原始数据存储在lucene中,字段属性store设置为true
search查询
特点:是最常用的,基于倒排索引实现的,在同类多条件查询里效率是最高的
GET _search
GET /wzx_test_001/_search/
url请求参数(常用的和需要考虑的):
request_cache:是否启用查询存在结果为0
from:其实参数位置
Perference:分配查询优先度,默认基于Es统计数据
q:通过URL输入查询条件
size:单页数据大小
sort:排序字段
routing:路由控制
_source:返回原始数据控制
scroll:是否滚动快照查询
search_type:全局打分还是分片打分,默认分片打分
version:是否返回数据版本
track_total_hits:是否返回总数量,7.0之后默认返回1万条,6.X版本不兼容
GET /product_codes/_search
{
"version": true,
"from": 1,
"track_total_hits":5,
"sort": [
{
"id": {
"order": "asc"
}
}
]
}
DSL领域查询语言:
特点:表达能力丰富、学习难度大,需要持续练习
#查询codeSerial为H190386pro40000002002的记录
GET /product_codes/_search
{
"query": {
"term": {
"codeSerial": {
"value": "H190386pro40000002002"
}
}
}
}
GET /product_codes/_search
{
"query": {
"bool": {
#组合模式,should相当于或
"should": [
{
"term": {
"codeSerial": {
"value": "H190386pro40000002002"
}
}
},
{
"match": {
"productName": "1P"
}
}
]
}
}
}
#查询所有
GET /product_codes/_search
{
"query": {
"match_all": {}
}
}
分值("_score")查询比较耗性能,
es解决方案:filter查询(无分值计算),内部使用bitmap算法去合并查询,无分值计算限制在精确查询领域和非分词领域
网友评论