Elasticsearch可以使用以下两个参数进行搜索结果的分页和排序:
from
:指定搜索结果的起始位置,类似于SQL中的OFFSET
。size
:指定搜索结果的数量,类似于SQL中的LIMIT
。例如,以下查询将返回从第10个结果开始的前20个结果:
GET /my_index/my_type/_search
{
"from": 10,
"size": 20,
"query": {
// 查询语句
},
"sort": [
// 排序规则
]
}
其中,sort
参数可以指定一个或多个排序规则,例如:
"sort": [
{ "price": { "order": "asc" } },
{ "date": { "order": "desc" } }
]
上述示例将根据price
字段进行升序排序,如果多个文档的price
相同,则根据date
字段进行降序排序。
此外,Elasticsearch还支持将查询匹配的关键字高亮显示,以帮助用户快速定位匹配的内容。可以使用以下参数来指定高亮显示的设置:
pre_tags
:指定高亮显示的起始标记。post_tags
:指定高亮显示的结束标记。fields
:指定要高亮显示的字段。例如,以下查询将在title
和content
字段中查找匹配的关键字,并将匹配的部分用<strong>
和</strong>
标记高亮显示:
GET /my_index/my_type/_search
{
"query": {
"match": {
"title": "关键字"
}
},
"highlight": {
"pre_tags": ["<strong>"],
"post_tags": ["</strong>"],
"fields": {
"title": {},
"content": {}
}
}
}
上述示例中,highlight
参数指定了高亮显示的设置。pre_tags
和post_tags
分别指定了起始和结束标记,fields
指定了要高亮显示的字段。