【发布时间】:2017-09-25 07:44:40
【问题描述】:
我是 Lucene 新手,在使字符串字段可在某个范围内搜索时遇到了一些问题。
所以,我有一个包含几个字符串字段的文档。其中之一是具有以下形式的版本
1.0, 1.1, 1.0-RC1...即Major.Minor(-RCX)
版本字符串有一个实现 Comparable 的支持 Java 类 (Version)。
我的分析器是一个分析器包装器,它是一个小写和空白分析器,类似于内置分析器。我使用经典查询解析器进行搜索。按确切字词搜索效果很好。
我想做的是这样的:
query: "version:[1.0-RC1 TO 1.5]" - 列出两个值之间(包括两个值)的所有文档匹配版本
和
psuedoquery: "someField:value AND version:latest" - 列出 someField = value 具有最新版本的所有文档
我尝试做的是在索引之前将我的版本字符串转换为int,但是查询输入需要以某种方式转换,以便在搜索之前版本字符串变为和int。我也尝试了具有三个维度的IntPoint但是来了无处可去。
看起来我必须为版本字段实现一个自定义分析器,但我在查找类似示例时遇到了问题。
如果有人能指出我正确的方向,那就太好了!
谢谢!
【问题讨论】: