【问题标题】:Searching multiple numerical fields Lucene搜索多个数值字段 Lucene
【发布时间】:2011-11-27 13:41:56
【问题描述】:

我已经有一些文档使用更多 NumericFields 每个文档进行索引。 现在我想搜索具有 区间内所有字段的文档,例如:

查询:n1=7,n2=10,n3=12 - 并且搜索应该返回所有具有间隔编号的文档:n1=<4,10>,n2=<7,13>,n3=<9,15>

问题:我需要什么分析器,如何编写查询,使用什么搜索器?

这是一个作业,所以我不能使用任何其他为范围搜索而构建的工具,必须使用 Lucene。

谢谢

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    不需要任何分析器或搜索器,
    只需要确保构建正确的查询,例如:-

    示例1:或(表示匹配任一条件)

    n1:(4 10) n2:(7 13) n3:(9 15)
    

    示例 2:And(意味着所有三个括号必须匹配)

    +n1:(4 10) +n2:(7 13) +n3:(9 15)
    

    示例 3:范围(您的问题听起来像是范围搜索)

    n1:[4 TO 10] n2:[7 TO 13] n3:[9 TO 15]
    

    示例 4:和范围

    +n1:[4 TO 10] +n2:[7 TO 13] +n3:[9 TO 15]
    

    【讨论】:

    • 我从不使用 Java 进行 lucene 搜索(Java 类零经验)。但我对 lucene 模式及其查询语法有所了解。要搜索数字(范围),您需要让所有 n1、n2、n3 都使用整数字段类型。加上正确的查询语法
    猜你喜欢
    • 2011-12-13
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多