欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Request Body Search

程序员文章站 2022-07-12 11:46:34
...

  1. 将查询语句通过HTTP Request Body发送给Elasticsearch
  2. Query DSL
POST /movies,404_idx/_search?ignore_unavailable=true
{
	"profile":true,
	"query":{
		"match_all":{}
	}
}

分页和排序

POST /kibana_sample_data_ecommerce/_search
{
	"sort":[{"order_date":"desc"}],
	"from":10,
	"size":5,
	"query":{
		"match_all":{}
	}
}
  1. 最好在“数字型”与“日期型”字段上排序
  2. 因为对于多值类型或分析过的字段排序,系统会选一个值,无法得知该值

_source filtering

GET kibana_sample_data_ecommerce/_search
{
	"_source":["order_date","order_date","category.keyword"],
	"from":10,
	"size":5,
	"query":{
		"match_all":{}
	}
}
  1. 如果_source没有存储,那就只返回匹配的文档的元数据
  2. _source支持使用通配符_source[“name*”,“desc*”]

脚本字段

painless脚本计算出新的字段的结果

GET kibana_sample_data_ecommerce/_search
{
	"script_fields":{
		"new_field":{
			"script":{
				"lang":"painless",
				"source":"doc['order_date'].value+'hello'"
			}
		}
	},
	"query":{
		"match_all":{}
	}
}

使用查询表达式 —— Match

term查询

#Last或Christmas出现
GET /comments/_doc/_search
{
	"query":{
		"match":{
			"comment":"Last Christmas"
		}
	}
}
#Last和Christmas同时出现
GET /comments/_doc/_search
{
	"query":{
		"match":{
			"comment":{
				"query":"Last Christmas",
				"operator":"AND"
			}
		}
	}
}

phrase查询

#slop中间可以有一个其它的字符进入
GET /comments/_doc/_search
{
	"query":{
		"match_phrase":{
			"comment":{
				"query":"Song Last Christmas",
				"slop":1
			}
		}
	}
}
相关标签: elasticsearch