欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ElasticSearch - 遐想

程序员文章站 2022-06-22 15:28:01
众所周知,ElasticSearch 存在一个问题,无法查询最近 1s 的写入。近实时这个属性,限制了其在某些场景的应用。本文记录了我在日常工作中想到的,解决特定场景的一些方案。既然是记录,便会有好有坏,仅供大家参考。 预设上下文 一个书籍(book)索引(index),文档(doc)属性有:名称( ......

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

预设上下文

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

总体约定

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

存在性查询

场景描述

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

解决方案

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