Python 插入后查询时,Elasticsearch缺少数据
我有一个测试,它执行以下操作:Python 插入后查询时,Elasticsearch缺少数据,python,
elasticsearch,pyes,Python,
elasticsearch,Pyes,我有一个测试,它执行以下操作: 使用pyes在ES上创建索引 插入映射 插入数据 查询数据以检查其是否符合预期结果 然而,当我运行这个测试时,有时它会发现没有结果,有时它会发现一些东西,但缺少一些数据。有趣的是,只有当我自动运行测试时才会发生这种情况。如果我逐行输入代码,一切正常。我已经手动测试了3次,它工作正常 有时我甚至会收到这样的信息: NoServerAvailable: list index out of range 似乎根本没有创建索引 我已经ping了我的ES地址,一切看起来都是
NoServerAvailable: list index out of range
似乎根本没有创建索引
我已经ping了我的ES地址,一切看起来都是正确的。在任何地方都找不到其他错误消息
我认为这是因为我试图在插入后过快地获取数据,如下所述:
(勾选接受答案中的第一条评论)
然而,即使我让它延迟4秒左右,这个问题仍然会发生。让我担心的是,有时只有一些数据丢失,这真的很奇怪。我想要么找到它要么错过它
有没有人有过类似的经历,可以对这个问题有所启发?谢谢。Elasticsearch近乎实时(NRT)。使您最近编制索引的文档可见/可供搜索可能需要1秒的时间。 要使最近索引的文档立即可用于搜索,您可以在index document命令的末尾追加
?refresh=wait_for
。例如
POST index/type?refresh=wait_for
{
"field1":"test",
"field2":2,
"field3":"testing"
}
?refresh=wait_for
将强制刷新索引,以使最近索引的文档可供搜索。请参阅。Elasticsearch近乎实时(NRT)。使您最近编制索引的文档可见/可供搜索可能需要1秒的时间。
要使最近索引的文档立即可用于搜索,您可以在index document命令的末尾追加?refresh=wait_for
。例如
POST index/type?refresh=wait_for
{
"field1":"test",
"field2":2,
"field3":"testing"
}
?refresh=wait_for
将强制刷新索引,以使最近索引的文档可供搜索。请参阅。共享您提到的4个步骤的代码。有刷新API共享您提到的4个步骤的代码。有刷新API