gpt4 book ai didi

elasticsearch - ElasticSearch实时地理查询的问题

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

我正在构建一项服务,该服务将允许用户根据GPS坐标搜索附近的其他用户。我尝试使用ElasticSearch的地理空间索引。用户登录时,会将其GPS位置提交给ElasticSearch地理索引。其他用户会定期轮询ElasticSearch,以查询包含数百米内GPS坐标的新文档。

问题在于,ElasticSearch不能足够快地更新其索引,或者会缓存其结果,使其不适合检索实时结果。我尝试使用index.cache.filter.max_size = -1禁用缓存,并在每个查询中传递“_cache = false”。当使用相同查询进行轮询时,ElasticSearch仍会返回过时的结果,并且它最多可以返回几分钟的过时结果。

对可能发生的事情有任何想法吗?也许是因为我在轮询期间保持同一连接处于打开状态,并且ElasticSearch缓存每个连接的结果?但是,结果可能与后续请求不合时宜。

最佳答案

Elasticsearch结果不会立即可用于搜索。它们被累积在缓冲区中,并且仅在称为refresh的操作之后才可用。换句话说,搜索不是实时的,而是“近实时”操作(“近”是因为默认情况下每秒调用一次刷新)。另请注意,get操作是实时的-在为文档建立索引后,您可以立即获取它。

尽管您可以在每个文档之后强制执行刷新过程,或者使其更频繁地执行,但这并不是解决问题的最佳方法,因为非常频繁的刷新会大大降低搜索和索引编制的性能。相反,我建议您检查Elasticsearch percolators,它是为诸如您这样的用例添加的。

关于elasticsearch - ElasticSearch实时地理查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19560338/

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