Elasticsearch基本操作-搜索

一、返回结构

{
  "took": 20,   // 整个搜索请求花费的毫秒数
  "timed_out": false, // 查询超时与否,false没有超时, true为超时
  "_shards": {
    "total": 5,  // 分片数量
    "successful": 5, // 成功的分片数量,即是没有故障的分片
    "failed": 0  // 失败的分片数量,即是出现故障的分片
  },
  "hits": {
    "total": 100000,  // 查询整个索引的文档数量
    "max_score": 1,  // 所有文档匹配查询中_score的最大值
    "hits": [
      {
        "_index": "test_index",  // 索引名称
        "_type": "test_index",   // 索引类型
        "_id": "030180142347",    // 文档id
        "_score": 1,   // 这条文档与查询的条件匹配程度
        "_source": {   // 文档的json数据
          "name": "lodge", 
          "age": 25
        }
      }
    ]
  }
}

二、查询方式

1、GET查询方式
// 在所有索引的所有类型中搜索
GET /_search

// 在索引test_index的所有类型中搜索
GET /test_index/_search

// 在索引test_index和test_index1的所有类型中搜索
// 多个索引查询
GET /test_index,test_index1/_search

// 在索引以test开头的所有类型中搜索
// 正则查询
GET /test_*/_search

// 在所有索引的user和tweet的类型中搜索
GET /_all/user,tweet/_search

// 条件查询文档
GET /test_index/_search?q=字段名:对应的值

// 分页查询,size代表结果数量,from代表跳过开始的结果数
// size相当sql的limit,from相当sql的offset
GET /test_index/_search?size=5&from=10
2、POST 查询方式(请求体查询方式)
// 请求体基本结构
{
  "query": {},   // 相当sql的where条件
  "sort": {},    // 相当sql的order by排序
  "from":0,      // 相当sql的offset从第几行获取
  "size":20,     // 相当sql的limit返回数据量
  "_source": []  // 获取那些文档字段数据
}
query内部简单包含关系的示意图

三、精度控制搜索

1、针对analyzed字段进行精确查询
POST /test_index/_search
{
    "query": {
        "match": {
           "title": {
               "query":  "人生苦短,我用python",
               "minimum_should_match":"100%"  // 精确匹配,需要指定匹配相似度
            }
        }
    }
}

你可能感兴趣的:(Elasticsearch基本操作-搜索)