在ins之后查询时,Elasticsearch缺少数据

2024-04-24 03:45:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个测试,它可以完成以下任务:

  1. 使用pye在ES上创建索引
  2. 插入映射
  3. 插入数据
  4. 查询数据以检查是否符合预期结果

然而,当我运行这个测试时,有时它会发现没有结果,有时它会找到一些东西,但是有些数据丢失了。有趣的是只有当我自动运行测试时才会发生这种情况。如果我一行一行地输入代码,一切都按预期工作。我已经手动测试了3次,而且没有失败。在

有时我甚至收到这样的信息:

NoServerAvailable: list index out of range

似乎根本没有创建索引

我查了一下我的ES地址,一切都正常了。在任何地方都没有找到其他错误消息。在

我想这可能是因为我试图在插入之后获取数据太快,如本文所述:Elastic Search No server available, list index out of range

(检查接受答案中的第一条评论)

然而,即使我让它延迟4秒左右,这个问题仍然会发生。让我担心的是,有时只有一些数据丢失,这真的很奇怪。我以为要么找到了全部,要么就失去了一切。在

有没有人有类似的经历能对这个问题有所启示?谢谢。在


Tags: of数据代码信息indexes地址地方
1条回答
网友
1楼 · 发布于 2024-04-24 03:45:39

Elasticsearch接近实时(NRT)。使最近编制索引的文档可见/可供搜索可能需要1秒钟。 要使最近编制索引的文档立即可供搜索,可以在index document命令的末尾追加?refresh=wait_for。例如

POST index/type?refresh=wait_for
{
  "field1":"test",
  "field2":2,
  "field3":"testing"
}

?refresh=wait_for将强制刷新索引,使最近索引的文档可供搜索。参考?refresh。在

相关问题 更多 >