当前位置: 首页 > wzjs >正文

网站 微信认证人工在线客服

网站 微信认证,人工在线客服,赤峰做网站,软件wap网站检索排序 & 分页 1.测试数据准备2.排序功能2.1 简单字段排序2.2 多字段排序2.3 日期排序 3.分页功能3.1 基础分页3.2 深度分页(不推荐大数据量使用)3.3 使用 search_after 进行高效分页 4.综合示例:高亮排序分页5.实践建议 1.测试数据准备…

检索排序 & 分页

  • 1.测试数据准备
  • 2.排序功能
    • 2.1 简单字段排序
    • 2.2 多字段排序
    • 2.3 日期排序
  • 3.分页功能
    • 3.1 基础分页
    • 3.2 深度分页(不推荐大数据量使用)
    • 3.3 使用 search_after 进行高效分页
  • 4.综合示例:高亮+排序+分页
  • 5.实践建议

1.测试数据准备

首先,我们创建一个名为 blog_posts 的索引,并插入一些测试数据:

PUT /blog_posts
{"mappings": {"properties": {"title": { "type": "text" },"content": { "type": "text" },"author": { "type": "keyword" },"views": { "type": "integer" },"publish_date": { "type": "date" },"tags": { "type": "keyword" }}}
}
POST /blog_posts/_bulk
{"index":{}}
{"title":"Elasticsearch Basics","content":"Learn the basics of Elasticsearch and how to perform simple queries.","author":"John Doe","views":1500,"publish_date":"2023-01-15","tags":["search","database"]}
{"index":{}}
{"title":"Advanced Search Techniques","content":"Explore advanced search techniques in Elasticsearch including aggregations and filters.","author":"Jane Smith","views":3200,"publish_date":"2023-02-20","tags":["search","advanced"]}
{"index":{}}
{"title":"Data Analytics with ELK","content":"How to use the ELK stack for data analytics and visualization.","author":"John Doe","views":2800,"publish_date":"2023-03-10","tags":["analytics","elk"]}
{"index":{}}
{"title":"Elasticsearch Performance Tuning","content":"Tips and tricks for optimizing Elasticsearch performance in production environments.","author":"Mike Johnson","views":4200,"publish_date":"2023-04-05","tags":["performance","optimization"]}
{"index":{}}
{"title":"Kibana Dashboard Guide","content":"Creating effective dashboards in Kibana for monitoring and analysis.","author":"Jane Smith","views":1900,"publish_date":"2023-05-12","tags":["kibana","visualization"]}

在这里插入图片描述

2.排序功能

能排序的字段都具备正排索引,单 text 类型字段是不可以排序的。如果要使 text 字段支持排序、聚合,则需要开启 fielddata

sort 是和 query 平级的,并不会被 query 包含。

2.1 简单字段排序

GET /blog_posts/_search
{"query": {"match_all": {}},"sort": [{"views": {"order": "desc"}}]
}

在这里插入图片描述

2.2 多字段排序

GET /blog_posts/_search
{"query": {"match_all": {}},"sort": [{"author": {"order": "asc"}},{"views": {"order": "desc"}}]
}

在这里插入图片描述

2.3 日期排序

GET /blog_posts/_search
{"query": {"match_all": {}},"sort": [{"publish_date": {"order": "desc"}}]
}

在这里插入图片描述

3.分页功能

Elasticsearch 支持对查询结果进行分页处理,允许用户逐步获取和浏览大量数据。

在编写查询语句时,可通过再请求体中添加 fromsize 字段实现分页。from 表示结果集的起始位置,而 size 表示每页返回的文档数量。

如果将 from 设置为 11 11 11size 设置为 5 5 5,则返回的是第 10 10 10 ~ 14 14 14 条数据(默认从第 0 0 0 条开始)。

3.1 基础分页

GET /blog_posts/_search
{"query": {"match_all": {}},"from": 0,"size": 2,"sort": [{"publish_date": {"order": "desc"}}]
}

在这里插入图片描述

3.2 深度分页(不推荐大数据量使用)

深度分页 指的是在 Elasticsearch 中查询结果集 非常靠后的页码(例如第 1000 1000 1000 页,每页 10 10 10 条数据,即 from=10000)。它通常表现为使用 from + size 参数组合来获取远端的分页数据。

❌ 不推荐的详细原因可参考我的另一篇博客:《【Elasticsearch】深度分页及其替代方案》。

当然,我们这里测试的数据没有那么多。

GET /blog_posts/_search
{"query": {"match_all": {}},"from": 3,"size": 2
}

在这里插入图片描述

3.3 使用 search_after 进行高效分页

首先获取第一页:

GET /blog_posts/_search
{"query": {"match_all": {}},"size": 2,"sort": [{"views": {"order": "desc"}},{"_id": {"order": "asc"}}]
}

在这里插入图片描述

然后使用最后一个结果的排序值获取下一页:

GET /blog_posts/_search
{"query": {"match_all": {}},"size": 2,"search_after": [3200, "上一页最后一个文档的ID"],"sort": [{"views": {"order": "desc"}},{"_id": {"order": "asc"}}]
}

在这里插入图片描述
在这里插入图片描述

4.综合示例:高亮+排序+分页

GET /blog_posts/_search
{"query": {"multi_match": {"query": "search","fields": ["title", "content"]}},"highlight": {"fields": {"title": {},"content": {"fragment_size": 100,"number_of_fragments": 2}}},"sort": [{"views": {"order": "desc"}}],"from": 0,"size": 3
}

在这里插入图片描述

5.实践建议

功能
实践建议
高亮
  • 对于大文本字段,限制 fragment_sizenumber_of_fragments 以提高性能。
  • 考虑使用 require_field_match: true 来只高亮查询中指定的字段。
排序
  • 对于文本字段排序,使用 .keyword 子字段或设置 fielddata: true
  • 避免对未索引或分析的字段进行排序。
  • 对于分页场景,使用包含唯一值的排序条件(如 _id)。
分页
  • 避免深度分页(超过 1000 1000 1000 条记录)),使用 search_after 代替。
  • 对于无限滚动等场景,优先考虑 search_after 而不是 from/size
  • 考虑使用滚动 API(Scroll API)对于大数据量导出场景。
http://www.dtcms.com/wzjs/236158.html

相关文章:

  • 自己做的网站怎么做客服聊天seo搜索价格
  • 家居类企业响应式网站微信上怎么做广告推广
  • 做驾考学时在哪个网站搜索引擎有哪些
  • win8风格门户网站销售清单软件永久免费版
  • 以你的心诠释我的爱网页设计素材海淀区seo搜索引擎
  • 网站制作费一般多少刷网站百度关键词软件
  • 一元云购网站建设模块青岛网站推广关键词
  • 网站建设新闻 常识竞价排名的定义
  • 鞍山发布奶盘seo伪原创工具
  • 海洋cms怎么做电影网站手机百度下载安装
  • 杭州电子商务网站建设英文网站seo
  • 网站制作郑州友情连接
  • 网站优化排名如何做产品营销策划方案
  • 成都市住房与城乡建设局官网桂林seo排名
  • 0元建设黑网站lol今日赛事直播
  • 宜兴做网站的公司有哪些哪个模板建站好
  • 做网站时字幕怎么做精准客户信息一条多少钱
  • 空气炸锅做糕点的网站谷歌sem服务商
  • 企业网站结构图郑州网络seo公司
  • thinkphp5 做网站福州短视频seo服务
  • 有每天做任务赚钱的网站吗搜狗竞价
  • 自己做套现要建网站吗口碑营销方案
  • 北京赛车手机网站建设自媒体人专用网站
  • 青岛专业网站建设公司品牌营销策划ppt
  • 学做网站的笔记本百度联系电话多少
  • 建网站费用会计分录国际形势最新消息
  • 会昌网站seo专业培训课程
  • 苏州外贸公司网站建设流程图怎样创建网站
  • 如何做滴滴网站平台b站推广2024mmm已更新
  • 移动网站建设方案seo快速优化方法