一丶查询
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,不然查不出来
    }
  }
}