Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。
特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。
倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢?笼统的来说,b-tree索引是为写入优化的索引结构。
当我们不需要支持快速的更新的时候,可以用预先排序等方式换取更小的存储空间,更快的检索速度等好处,其代价就是更新慢。
要进一步深入的化,还是要看一下Lucene的倒排索引是怎么构成的。
这里有好几个概念。
我们来看一个实际的例子,假设有如下的数据:这里每一行是一个document。
每个doc
1