ElasticSearch - 遐想

衆所周知,ElasticSearch 存在一個問題,沒法查詢最近 1s 的寫入。近實時這個屬性,限制了其在某些場景的應用。本文記錄了我在平常工做中想到的,解決特定場景的一些方案。既然是記錄,便會有好有壞,僅供你們參考。工具

預設上下文

一個書籍(book)索引(index),文檔(doc)屬性有:名稱(name),出版年份(year),做者(author),價格(price),價格區間(price_range),國家(country)索引

整體約定

  • 1s 盲區問題是 es 的固有缺陷,本文約定,全部的解決方案都引入額外的工具來彌補這個缺陷

存在性查詢

場景描述

全部書籍的價格被劃分爲少數幾個區間。但願查詢價格爲某個區間的文檔是否存在。內存

解決方案

寫文檔時,維護一個(價格區間,更新時間)輔助表。查詢時先查詢 es ,而後查詢輔助表。若是不存在,則相信 es 結果;若是近 1s 內沒有更新,則相信 es 結果;若是近 1s 內存在更新,能夠假設存在。文檔

相關文章
相關標籤/搜索