搜索类型

搜索平台允许业务选择其所希望的处理查询的方式。因为存在一些不同的情形,对其使用不同的搜索类型才是合适的。为了控制查询的执行方式,我们可以在查询中使用ex_body_type参数,并将值设为下面的几种:

1. count

count搜索类型只返回匹配查询的文档数目。

http://192.168.65.222:18082/products/A967550?q=苹果&ex_body_type=count

返回结果:

{
    "total": 50,
    "root": []
}

2. scan

scan搜索类型返回所有符合条件的文档,不进行打分和排序,分页信息也不起作用。scan搜索方式是比较高效的。需要控制好符合条件的文档数目,如果可能符合条件的文档很多,请不要用scan搜索类型,请使用scroll搜索类型

3. scroll

scroll搜索类型相当于分页版本的scan
scroll, 时间轴滚动,一个搜索请求可以滚动通过指定Scroll搜索类型。这个scroll参数是一个时间价值参数,表明参与搜索的节点将为了继续搜索,保持相关资源多长时间。这是非常类似对数据库打开游标进行读取的方式。
执行方式: 第一次执行参数:ex_body_type=scroll,返回结果中没有数据,带有"_scroll_id"字段:

    {
          "_scroll_id": "\ncXVlcnlUaGVuRmV0Y2g7MjsxNDM5MzMxOnRVMC1MbUdsUVVDZng4alMzY1VYbXc7MTQzOTMzMDp0VTAtTG1HbFFVQ2Z4OGpTM2NVWG13OzA7",
          "total":333,
        "root"[]
    }

后续执行时需要将上一次返回结果中"_scroll_id"带上:ex_body_type=scroll&_scroll_id=c2NhbjsyOzE4ODQ1NjE6WW9uSWhYRkZTUmFnQm1XTWltVFVlUTsyMzg3Mjk1OnhRYXRoU18zUjQtZlJTQ042cG9Jd3c7MTt0b3RhbF9oaXRzOjUwOw==
执行完毕后需要删除游标,使用DELETE请求,带上参数ex_body_type=scroll&_scroll_id=wierowirowirowiroiwr

results matching ""

    No results matching ""