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

【Elasticsearch】track_total_hits

在 Elasticsearch 中,`track_total_hits` 是一个查询参数,用于控制是否精确计算搜索结果的总命中数(`total hits`)。默认情况下,Elasticsearch 在某些情况下可能会对总命中数进行近似计算,以提高性能。`track_total_hits` 参数允许你显式地控制这种行为。

 

背景

在 Elasticsearch 中,当查询返回大量结果时,精确计算总命中数可能会消耗较多资源。因此,Elasticsearch 在某些情况下会返回一个近似的总命中数。从 Elasticsearch 7.0 开始,`track_total_hits` 参数被引入,以提供更灵活的控制。

 

参数值

`track_total_hits` 参数可以接受以下几种值:

 

1. `true`:始终精确计算总命中数,无论结果集大小如何。

2. `false`:始终返回近似的总命中数。

3. `number`(正整数):当返回的文档数量小于或等于这个值时,精确计算总命中数;否则返回近似值。

 

默认行为

从 Elasticsearch 7.0 开始,默认行为是:

- 如果返回的文档数量小于或等于 10,000,则精确计算总命中数。

- 如果返回的文档数量超过 10,000,则返回近似的总命中数。

 

使用场景

1. 精确计算总命中数:

   如果你需要精确的总命中数,无论结果集大小如何,可以将 `track_total_hits` 设置为 `true`。例如:

   

```json

   GET /your_index/_search

   {

     "query": {

       "match_all": {}

     },

     "track_total_hits": true

   }

   ```

 

2. 近似计算总命中数:

   如果你对总命中数的精确性要求不高,可以将 `track_total_hits` 设置为 `false`,以提高查询性能。例如:

   

```json

   GET /your_index/_search

   {

     "query": {

       "match_all": {}

     },

     "track_total_hits": false

   }

   ```

 

3. 自定义阈值:

   如果你希望在返回的文档数量小于某个特定值时精确计算总命中数,可以设置一个正整数。例如,设置为 5000:

   

```json

   GET /your_index/_search

   {

     "query": {

       "match_all": {}

     },

     "track_total_hits": 5000

   }

   ```

 

注意事项

- 性能影响:精确计算总命中数可能会消耗更多资源,尤其是在数据量较大的情况下。因此,建议根据实际需求合理设置 `track_total_hits`。

- 版本差异:在 Elasticsearch 7.0 之前,`track_total_hits` 参数的行为可能略有不同。建议查阅对应版本的官方文档以获取准确信息。

 

通过合理使用 `track_total_hits` 参数,你可以根据实际需求在精确性和性能之间取得平衡。

http://www.xdnf.cn/news/691363.html

相关文章:

  • CAD图纸中的文字看不到,这是什么原因?
  • 传输线的特性阻抗和传播延迟
  • DL00916-基于深度学习的金枪鱼各类别目标检测含完整数据集
  • 131.在 Vue3 中使用 OpenLayers 测量长度和面积,并支持 modifyend 动态更新数值
  • 不打架的协议互通,modbus转profibus网关的总线的高效互通方案
  • C53-字符串引入和注意事项.
  • JavaScript 中 this 指向全解析:从基础到 Vue 应用
  • 【加密算法】
  • Qt/C++开发监控GB28181系统/sip协议/同时支持udp和tcp模式/底层协议解析
  • 【Microsoft 365可用】PPT一键取消所有超链接
  • Python 进阶【二】:多进程编程
  • TCP三次握手/四次握手-TCP/IP四层模型-SSL/TLS-HTTP-HTTPS
  • Bootstrap法进行随机模拟
  • 第11章:工程组织与系列总结
  • 8086 处理器寄存器超详细解析:从原理到实战
  • 三分钟打通Stable Diffusion提示词(附实战手册)
  • TDengine 运维——用户和权限
  • Agent 的7 中设计模式
  • 4.Consul服务注册与发现
  • 【深度学习】10. 深度推理(含链式法则详解)RNN, LSTM, GRU,VQA
  • 33.第二阶段x64游戏实战-InLineHook
  • Jmeter——JDBC连接数据库相关
  • 【vscode】切换英文字母大小写快捷键如何配置
  • 《Google I/O 2025:AI浪潮下的科技革新风暴》
  • 宁夏农业科技:创新引领,赋能现代农业新篇章
  • c语言实现Linux命令行补全机制
  • 运用集合知识做斗地主案例
  • 智能指针的使用及原理
  • MCP 登场:掘金开启 AI 前端项目部署新时代
  • 第三章、数据链路层