搜索类型
搜索平台允许业务选择其所希望的处理查询的方式。因为存在一些不同的情形,对其使用不同的搜索类型才是合适的。为了控制查询的执行方式,我们可以在查询中使用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