欢迎来到Xugang的小屋
-
IndexSortSortedNumericDocValuesRangeQuery (一)(Lucene 9.0.0)
我们先通过IndexSortSortedNumericDocValuesRangeQuery类的注释了解下这个Query。 图1: 图1中红框标注的注释说到,范围查询可以通过利用Index Sort来提高查询效率。如果查询条件的域field... -
PointRangeQuery(二)(Lucene 8.11.0)
本文承接PointRangeQuery(一),继续介绍数值类型的范围查询PointRangeQuery。 节点访问规则IntersectVisitor 上一篇文章中我们说到,在收集文档号的策略中,除了策略一,不管哪一种策略,他们的相同点都是... -
PointRangeQuery(一)(Lucene 8.11.0)
该系列文章开始介绍数值类型的范围查询PointRangeQuery,该类数据在Lucene中被称为点数据Point Value。 点数据按照基本类型(primitive type)可以划分IntPoint、LongPoint、FloatPoi... -
IndexSort(一)(Lucene 8.9.0)
段内排序IndexSort是Lucene在索引(Indexing)阶段提供的一个功能,该功能使得在执行flush、commit或者NRT操作后,新生成的段其包含的文档是有序的,即在索引阶段实现了文档的排序。 在之前的一些文章中已经简单的介绍了... -
GeoQuery(二)(Lucene 8.8.0)
GeoQuery(二)(Lucene 8.8.0) 在上一篇文章GeoQuery(一)中,我们基于下面的例子介绍了在GeoHash编码在Elasticsearch中的部分实现,我们继续介绍其剩余内容。 12latitude:32longitud... -
GeoQuery(一)(Lucene 8.8.0)
本系列文章将介绍下Elasticsearch中提供的几个地理查询(Geo Query)在Lucene层的相关内容。Elasticsearch 7.13版本中提供了以下的Geo Queries: geo_bounding_box query ge... -
DisjunctionMaxQuery(Lucene 8.9.0)
本系列的内容将会先介绍DisjunctionMaxQuery在Lucene中的实现原理,随后再介绍在Elasticsearch中的应用。我们先直接通过图1中DisjunctionMaxQuery的注释跟图2的构造函数来简单了解下这个Query的功... -
IndexOrDocValuesQuery(Lucene 8.9.0)
本篇文章介绍下Lucene中用于优化范围(数值类型point或者term类型)查询的Query:IndexOrDocValuesQuery。 我们先通过这篇BLOG(如果链接失效,可以查看附件中的PDF)来概述下为什么会设计IndexOrDo... -
查询TopN的优化之NumericDocValues(二)(Lucene 8.9.0)
在上一篇文章的结尾,我们总结了使用NumericDocValues优化查询TopN的原理:假设查询TopN的排序规则为按照正排值从小大小的顺序,即正排值越小,优先级越高。故在开启优化后,当收集器收到一个文档号,先根据文档号从正排索引中拿到正排值,... -
DocIdSet(Lucene 8.9.0)
本篇文章将介绍Lucene中用于存储文档号的数据结构DocIdSet,该抽象类的具体实现有以下几种,我们将一一介绍。 图1: 图1中,DocsWithFieldSet跟RoaringDocIdSet已经介绍过了。建议先看下文章Roaring...