gpt4 book ai didi

elasticsearch - 为什么ElasticSearch Java Client索引Future在记录可搜索之前完成?

转载 作者:行者123 更新时间:2023-12-02 22:51:22 26 4
gpt4 key购买 nike

我正在使用elastic4s客户端,该客户端返回Future以响应索引请求,并且当将来完成时,在查询该索引记录之前,我仍然必须执行Thread.sleep(1000)。通常是1秒。是否可以更改Elasticsearch设置,以便将来完成记录时可用?

我尝试直接使用Java客户端client.prepareIndex....execute().actionGet();,结果完全一样,我必须调用Thread.sleep(1000)
有什么我可以更改的设置,可以在将来完成后准备好记录吗?

execute(index into(foo, bar) id uuid fields baz).await
Thread.sleep(1000) // This is mandatory for search to find it
execute {search in foo}.await // returns empty without Thread.sleep(1000)

最佳答案

听起来您可能必须等待默认的索引刷新间隔生效,才能查询新索引的数据。 The refresh interval is 1 second by default,可以使用以下命令进行更改

curl -XPUT localhost:9200/test/_settings -d '{
"index" : {
"refresh_interval" : "1s"
} }'

另外,您可以在索引操作之后通过 including the refresh parameter in the query string of the index operation刷新分片。这可能比全局更改刷新间隔更有用
curl -XPUT 'http://localhost:9200/{index}/{type}/{id}?refresh=true' -d '{
"property" : "value"
}'

关于elasticsearch - 为什么ElasticSearch Java Client索引Future在记录可搜索之前完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28664463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com