elasticsearch - Elasticsearch:有些字段会立即出现,有些字段会延迟出现
问题描述
我有一个很奇怪的情况
将文档发送到 ES 索引并创建文档后,文档中的某些字段会立即出现,而某些字段会延迟出现。也就是说,有些字段有null
,[]
和0
(取决于字段类型)而不是发送到索引的值。
5-10 分钟后,这些字段将填充实际值。
当我批量处理大量文档(最多 500 个)时会出现这种情况。当我将文件一一发送时,并没有发生这种情况。
在谷歌搜索这个问题没有给出任何结果。
可以在索引或批量设置中进行哪些更改,以使文档不会在搜索中显示为空值?
弹性搜索版本:7.6.0
更新:
有关更多上下文,我添加了打印屏幕:
在索引设置中refresh_interval
设置为1s
添加refresh = "wait_for"
到批量请求并没有改变任何东西
解决方案
请检查您的索引的刷新参数,默认为 1 秒,但可以调整。另外,请检查您在发送时是否没有进行显式刷新或wait_for
在请求中使用参数。
等待请求所做的更改通过刷新可见,然后再回复。这不会强制立即刷新,而是等待刷新发生。Elasticsearch 会自动刷新每次更改的分片
解决方案:对于您的批量请求,请使用wait_for
参数,在刷新发生之前使用它不会返回结果,一旦您收到响应,您发送的值将可用于搜索。
推荐阅读
- php - 将字符串和数组的组合插入MYSQL
- java - 使用正则表达式替换字符串中的特定字符
- .net - 了解 ONION 和 N 层架构之间的区别
- python - SQLAlchemy 将行索引添加到响应
- python - OSError:[Errno 22] 无效参数:
- docker - Can't connect to Node inside Docker image
- javascript - javascript中的蓝牙耳机按钮事件检测
- css - 无法为画布设置背景图像
- terminal - VSCode - 在 vsc 中打开新的终端窗口
- php - How obtain a list of posts by category?