通过Lucene中的数字字段查找文档

时间:2014-01-21 15:44:46

标签: java search lucene

例如,我有一些字段描述的文档:iddateprice

第一份文件:id=1date='from 10.01.2014 to 20.01.2014'price='120'

第二个文件:id=2date='19.01.2014'price='from 100 to 140'

我的程序接收键/值参数,应找到最合适的文档。因此,例如,使用此参数date=19.01.2014price='120'程序应找到这两个文档。使用date=20.01.2014price=120'只有第一个文档。使用date='19.01.2014price=140'只有第二个。

我如何用Java中的Lucene做到这一点?我看到了一些示例,其中我正在键入查询,例如'给我文档,其中日期是从...到...',Lucene给了我这个范围内的文档。而不是我想要为我的文档指定范围而不是查询。

1 个答案:

答案 0 :(得分:1)

您可以为日期和价格索引开盘和收盘价格,例如

您的文档#1将被编入索引:

id = 1
dateFrom = 10.01.2014 
dateTo = 20.01.2014 
priceFrom = 120
priceTo = 9999999999

将文件#2作为

id=2
dateFrom = 19.01.2014
dateTo = 01.01.2099
priceFrom = 100
priceTo = 140

查询如下所示:

+dateFrom:[19.01.2014 TO *] +priceFrom:[120 TO *] +priceTo:[* TO 140]

这不是很有效,但应该有效。