版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013219624/article/details/84763304
1.数据准备
PUT data
{
"settings":{
"number_of_replicas":0,
"number_of_shards":3
},
"mappings":{
"user": {
"properties": {
"name":{"type":"text"},
"address":{"type":"text"},
"age":{"type":"integer"},
"interests":{"type":"text"},
"birthday":{"type":"date"}
}
}
}
}
PUT data/user/1
{
"name":"jack",
"address":"beijing",
"age":23,
"interests":"programing",
"birthday":"2018-11-12"
}
PUT data/user/2
{
"name":"tom",
"address":"shanghai",
"age":13,
"interests":"programing fb bk",
"birthday":"2018-03-15"
}
PUT data/user/3
{
"name":"jack3",
"address":"nanjing",
"age":10,
"interests":"fb lol",
"birthday":"2018-08-25"
}
2.term(s)查询,适合keyword numeric date
GET data/user/_search
{
"query": {
"term": {
"name": "jack3"
}
}
}
GET data/user/_search
{
"query": {
"terms": {
"name": ["jack3","jack"]
}
}
}
注:其实就是查询条件不分词 直接走倒排索引查文档
3.match(multi_match)查询
GET data/user/_search
{
"query": {
"match": {
"name": "jack jack3"
}
}
}
GET data/user/_search
{
"query": {
"multi_match": {
"query": "tom",
"fields": ["name", "address"]
}
}
}
注:查询条件先分词 再走倒排索引查文档
4.短语查询,也是不分词查询
GET data/user/_search
{
"query": {
"match_phrase": {
"interests": "fb bk"
}
}
}
GET data/user/_search
{
"query": {
"match_phrase_prefix": {
"name": "jack"
}
}
}
*5.wildcard查询(代表0个多个词 ?代表任意一个词)
GET data/user/_search
{
"query": {
"wildcard": {
"name": "jack?"
}
}
}
GET data/user/_search
{
"query": {
"wildcard": {
"name": "jack*"
}
}
}
6.模糊查询
GET data/user/_search
{
"query": {
"fuzzy": {
"name": "jagk"
}
}
}
注:这里有点特表要注意下
7.高亮显示查询
GET data/user/_search
{
"query": {
"match": {
"name": "jack"
}
},
"highlight": {
"fields": {
"name":{}
}
}
}
8.范围
# 日期
GET data/user/_search
{
"query": {
"range": {
"birthday": {
"from": "2018-03-15",
"to": "2018-11-12"
}
}
}
}
# 年龄
GET data/user/_search
{
"query": {
"range": {
"age": {
"from": 10,
"to": 23,
# 不包含 10
"include_lower": false,
# 不包含 23
"include_upper": false
}
}
}
}
9.排序(sort)
GET data/user/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
10.分页查询
GET data/user/_search
{
"from": 0,
"size": 2,
"version": true,
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
11.指定查询结果(_source)
GET data/user/_search
{
"query": {
"match_all": {}
},
"_source": ["name", "age"]
}
注:_source也可以用通配符
GET data/user/_search
{
"query": {
"match_all": {}
},
"_source": {
"includes": ["name", "a*"],
"excludes": ["age"]
}
}