50.常用的query查询方式
主要知识点
- match all
- match
- multi match
- range query
- term query
- terms query
- exist query
1、match all
查询所有
GET /_search
{
"query": {
"match_all": {}
}
}
示例:
GET /company/employee/_search
{
"query": {
"match_all": {}
}
}
2、match
GET /_search
{
"query": { "match": { "title": "my elasticsearch article" }}
}
示例:
GET /company/employee/_search
{
"query": {
"match": {
"age": "27"
}
}
}
3、multi match
GET /test_index/test_type/_search
{
"query": {
"multi_match": {
"query": "test",
"fields": ["test_field", "test_field1"]
}
}
}
示例:
GET /company/employee/_search
{
"query": {
"multi_match": {
"query": "china",
"fields": ["address.city","address.country","address.province"]
}
}
}
4、range query
GET /company/employee/_search
{
"query": {
"range": {
"age": {
"gte": 30
}
}
}
}
示例:
GET /company/employee/_search
{
"query": {
"range": {
"age": {
"gte": 30
}
}
}
}
5、term query
不分词,必须精确匹配
GET /test_index/test_type/_search
{
"query": {
"term": {
"test_field": "test hello"
}
}
}
6、terms query
不分词,必须精确匹配
GET /_search
{
"query": { "terms": { "tag": [ "search", "full_text", "nosql" ] }}
}
7、exist query
(2.x中的查询,现在已经不提供了)