Lucene4.6 把时间信息写入倒排索引的Offset偏移量中,并实现按时间位置查询
Posted JetHu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene4.6 把时间信息写入倒排索引的Offset偏移量中,并实现按时间位置查询相关的知识,希望对你有一定的参考价值。
有个新的技术需求,需要对Lucene4.x的源码进行扩展,把如下的有时间位置的文本写入倒排索引,为此,我扩展了一个TimeTokenizer分词器,在这个分词器里将时间信息写入
偏移量Offset中。扩展了一个Filter,最后查询时通过filter把时间信息传进去过滤想要的时间范围之内的结果。
Lucene倒排索引中分好的词有两个偏移量一个是按字符的偏移量(BeginOffset和EndOffset)另一个是以分词(Term)为一个单元的position,每增加一个词position加1,如果这个词有两个字符则EndOffset加2, BeginOffset等于上一次的EndOffset。
源码地址:https://github.com/Jethu1/TimeAnalyzer
以上是关于Lucene4.6 把时间信息写入倒排索引的Offset偏移量中,并实现按时间位置查询的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch 为什么能做到快速检索?— 倒排索引的秘密
Elasticsearch 为什么能做到快速检索?— 倒排索引的秘密
es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?...