我正在构建一项服务,允许用户根据 GPS 坐标搜索附近的其他用户。我尝试过使用 ElasticSearch 的地理空间索引。当用户登录时,他会将他的 GPS 位置提交到 ElasticSearch 地理索引。其他用户定期轮询 ElasticSearch,查询包含几百米内 GPS 坐标的新文档。
问题是 ElasticSearch 要么没有足够快地更新它的索引,要么它缓存了它的结果,使其不适合检索实时结果。我尝试使用 index.cache.filter.max_size=-1 禁用缓存,并在每个查询中传递“_cache=false”。当使用相同的查询进行轮询时,ElasticSearch 仍会返回陈旧的结果,并且最多可能会返回几分钟的陈旧结果。
对可能发生的事情有任何想法吗?也许是因为我在轮询期间保持打开相同的连接,并且 ElasticSearch 为每个连接缓存结果?尽管如此,结果可能会因后续请求而过时。