一丶查询
1.matll_all全文查询:
GET /bank/_search
{
"query": {
"match_all": {} //查出所有
},
"sort": [
{
"age": {
"order": "desc" //排序
}
}
],
"from": 0, //从第几个取 从开始
"size": 6, //去几个
"_source": ["balance"] //显示字段
}2.match根据条件查找
GET /bank/_search
{
"query": {
"match": {
"age": 34 //如果是数字,就精确查找;如果是字符串,就模糊查找,对条件进行分
词匹配
}
}
}根据全文索引进行检索,根据得分排列。
3.match_parase短语匹配
GET /bank/_search
{
"query": {
"match_phrase": {
"address": "Agate Court" //将Agate Court看成一个整体。不将它进行分词。
}
}
}注意:加.keyword和不加keyword的区别:
加keyword代表精确查找这个字段,分词出来包含不行。
4.multi_match多字段匹配
GET /bank/_search
{
"query": {
"multi_match": {
"query": "mill Sunnyside",
"fields": ["address","city"] //其中有一个满足条件即可,query里的条件会进行分词
}
}
}5.bool复合查询
GET /bank/_search
{
"query": {
"bool": {
"must": [ //必须满足的条件
{"match": {
"gender": "f"
}},
{
"match": {
"city": "Winfred"
}
}
],
"must_not": [ //必须不满足的条件
{"match": {
"age": "32"
}},
{
"match": {
"firstname": "Java"
}
}
],
"should": [ //可以满足可以不满足
{"match": {
"employer": "bsd"
}}
]
}
}
}
6.filter过滤
GET /bank/_search
{
"query": {
"bool": {
"filter": {
"range": { //起过滤作用,与must相似,不同的是不会计算相关性得分。可与must,must_not,should一起使用
"age": {
"gte": 10,
"lte": 20
}
}
}
}
}
}7.term查询
GET /bank/_search
{
"query": {
"term": {
"age": 20 //精确查找可以使用term,需要分词检索进行全文搜索就用match,不然查不出来
}
}
}
京公网安备 11010502036488号