ElasticSearch遐想

database

众所周知,ElasticSearch 存在一个问题,无法查询最近 1s 的写入。近实时这个属性,限制了其在某些场景的应用。本文记录了我在日常工作中想到的,解决特定场景的一些方案。既然是记录,便会有好有坏,仅供大家参考。

预设上下文

一个书籍(book)索引(index),文档(doc)属性有:名称(name),出版年份(year),作者(author),价格(price),价格区间(price_range),国家(country)

总体约定

  • 1s 盲区问题是 es 的固有缺陷,本文约定,所有的解决方案都引入额外的工具来弥补这个缺陷

存在性查询

场景描述

所有书籍的价格被划分为少数几个区间。希望查询价格为某个区间的文档是否存在。

解决方案

写文档时,维护一个(价格区间,更新时间)辅助表。查询时先查询 es ,然后查询辅助表。如果不存在,则相信 es 结果;如果近 1s 内没有更新,则相信 es 结果;如果近 1s 内存在更新,可以假设存在。

以上是 ElasticSearch遐想 的全部内容, 来源链接: utcz.com/z/531715.html

回到顶部