目录
一、排序
二、分页查询
三、高亮查询
一、排序
ES中默认使用相关度分数实现排序,可以通过搜索语法定制化排序。
GET /索引/_search
{ "query": 搜索条件,"sort": [{"字段1":{"order":"asc"} },{ "字段2":{ "order":"desc" } }]
}
由于ES对text类型字段数据会做分词处理,使用哪一个单词做排序都是不合理的,所以 ES中默认不允许对text类型的字段做排序。如果需要使用字符串做结果排序,可以使用 keyword类型的字段作为排序依据,因为keyword字段不做分词处理。
二、分页查询
GET /索引/_search
{ "query": 搜索条件,"from": 起始下标,"size": 查询记录数,一页多少条
}
三、高亮查询
在进行关键字搜索时,搜索出的内容中的关键字会显示不同的颜色,称之为高亮。
为什么在网页中关键字会显示不同的颜色,我们通过开发者工具查看网页源码:
我们可以在关键字左右加入标签字符串,数据传入前端即可完成高亮显示,ES可以对查询出的内容中关键字部分进行标签和样式的设置。
GET /索引/_search
{ "query":搜索条件,"highlight":{"fields": { "高亮显示的字段名": {// 返回高亮数据的最大长度"fragment_size":100,// 返回结果最多可以包含几段不连续的文字"number_of_fragments":5} },"pre_tags":["前缀"], "post_tags":["后缀"]}
}
举例:
GET /students/_search
{"query": {"match": {"info":"成绩的"}},"highlight":{"fields": { "info": { "fragment_size":100,"number_of_fragments":5} },"pre_tags":["<em>"], "post_tags":["</em>"]}
}