Java 在Lucene中通过数字字段查找文档
例如,我有一些按字段描述的文档:Java 在Lucene中通过数字字段查找文档,java,search,lucene,Java,Search,Lucene,例如,我有一些按字段描述的文档:id、date和price 第一份文件:id=1,date='2014年1月10日至2014年1月20日',price='120' 第二份文件:id=2,date='19.01.2014'和price='从100到140' 我的程序接收键/值参数,并应找到最合适的文档。因此,例如,使用此参数date=19.01.2014和price='120'程序应该可以找到这两个文档。由于日期=2014年1月20日,价格=120'仅为第一份文件。对于日期为2014年1月19日的
id
、date
和price
第一份文件:id=1
,date='2014年1月10日至2014年1月20日'
,price='120'
第二份文件:id=2
,date='19.01.2014'
和price='从100到140'
我的程序接收键/值参数,并应找到最合适的文档。因此,例如,使用此参数date=19.01.2014
和price='120'
程序应该可以找到这两个文档。由于日期=2014年1月20日
,价格=120'
仅为第一份文件。对于日期为2014年1月19日的,price=140'
只有第二个
在Java中如何使用Lucene?我看到了一些例子,其中我输入了类似“给我日期是从哪里来的文档”这样的查询。。到..',Lucene给了我这个范围内的文档。与此相反,我希望为我的文档指定范围,而不是为查询指定范围。您可以为日期和价格的开盘和收盘范围编制索引,例如
您的文档#1将被索引为:
id = 1
dateFrom = 10.01.2014
dateTo = 20.01.2014
priceFrom = 120
priceTo = 9999999999
和文件#2作为
查询如下所示:
+dateFrom:[19.01.2014 TO *] +priceFrom:[120 TO *] +priceTo:[* TO 140]
这不是很有效,但它应该会起作用。我认为如果找不到其他方法,它可能会起作用。非常感谢。
+dateFrom:[19.01.2014 TO *] +priceFrom:[120 TO *] +priceTo:[* TO 140]