【Elasticsearch入门篇七】Elasticsearch的基本操作Search

Empty Search

空搜索,它没有任何查询条件,查询集群中的所有索引。默认返回前10个文档;

curl -i -XGET 'http://localhost:9200/_search'

结果:

{   "took":1,
    "timed_out":false,
    "_shards":{
        "total":5,"successful":5,
        "skipped":0,"failed":0
    },
    "hits":{
        "total":2,
        "max_score":1,
        "hits":[{
                "_index":"city",
                "_type":"south",
                "_id":"2",
                "_score":1,
                "_source":{"cityName":"guangzhou"}
            },{
                "_index":"city",
                "_type":"south",
                "_id":"3",
                "_score":1,
                "_source":{"cityName":"xiamen"}
            }
        ]}
}

对返回结果的简单说明:

1.took:搜索请求所花费的时间毫秒数;
2.timeout:查询是否超时,注意的是timeout后并不会停止查询;
3._shards:告诉我们参数查询的分片情况。total表示分片个数,successful表示成功的分片数, failed表示失败的分片数,skipped跳过的分片数;
4.hits:该部分的信息最总要。hits数组包含一个个文档对象,每个文档对象有内容放在_source中,由_index(索引);_type(类型);_id(文档ID)组成,表示这些内容可以直接使用;_score:文档相关性得分,表示文档与查询条件的匹配度;
  • total:匹配到文档数量;
  • max_score:匹配的文档中_score的最大值;

多索引、多类型搜索

空搜索的结果包含不同类型文档,并且来自于不同索引,其实还可以细化后进行搜索。假如现在有citycompany索引。

  • 在某个索引中查询所有文档
curl -i -XGET 'http://localhost:9200/city/_search'
  • 在多个索引中查询所有文档
curl -i -XGET 'http://localhost:9200/city,company/_search'
  • 匹配索引并查询所有文档
curl -i -XGET 'http://localhost:9200/c*/_search';匹配到以 c 开头的索引

分页搜索

Elasticsearch中接受fromsize参数进行分页查询。

size : 表示每页的文档数量;
from : 表示页数,默认从0开始;

例如:

curl -i -XGET 'http://localhost:9200/city/south/_search?from=0&size=2'

利用分页查询时,要防止深度查询。

相关推荐