【问题标题】:Finding document by numeric fields in Lucene在 Lucene 中按数字字段查找文档
【发布时间】:2014-01-21 15:44:46
【问题描述】:

例如,我有一些按字段描述的文档: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 给了我这个范围内的文档。而不是这个,我想为我的文档而不是查询指定范围。

【问题讨论】:

    标签: java search lucene


    【解决方案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]
    

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

    【讨论】:

    • 我认为如果找不到其他东西,它可能会起作用。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    相关资源
    最近更新 更多