我创建的Lucene索引有一个列表字段,其中包含某段数据备份时的Epoch值。每次执行备份时,都会向列表中添加一个元素,每次备份过期时,都从列表中删除元素。这导致了类似于以下内容的Lucene文档模式:
|
备份时间
|
数据
|
[1000, 2000, 3000, 4000]
|
...
|
我希望创建一个满足以下条件的查询:
查找这样的文档:
备份时间
介于提供的时间范围之间的列表。
例如,给定上面的文档,如果使用范围创建查询
[1500 -> 2500]
,文档将被匹配,因为列表中有一个元素(
2000
)介于
1500
和
2500
相反,如果范围
[2100 -> 2900]
如果提供了,则文档将不匹配,因为列表中不存在介于
2100
和
2900
。
谢谢你的帮助。
在一边
:我知道我的用例正在改变Lucene的设计。不幸的是,按照我们应用程序目前的设计,这是一个我们必须执行的用例。即使查询很复杂,或者需要花费更多的时间,我仍然在寻找一个可行的解决方案来暂时覆盖这个用例。
我也愿意接受一个优化查询的替代模式的建议。也就是说,如果以其他方式存储数据会有所帮助,我对该解决方案持开放态度,只要满足上面的查询(用例)。