【问题标题】:Lucene searching by numeric valuesLucene 按数值搜索
【发布时间】:2009-12-12 13:09:00
【问题描述】:

我正在构建一个基于 Java Lucene 的搜索系统,此外,它还添加了一定数量的元字段,其中一个是 sourceId 字段,它表示条目的来源。

我现在正尝试从特定来源检索所有文档,但索引似乎无法找到它们。但是,如果我搜索通配符值,则返回的文档都具有该字段的正确值。

我使用的 lucene 查询非常简单,基本上是 index-source-id:1,但它没有返回任何命中,如果我搜索 content:a*,我会得到几十个文档,当被问到时,所有这些文档都返回值 @ index-source-id 的值是 987654323@,这是正确的。

有什么想法吗?

【问题讨论】:

    标签: java search lucene numeric


    【解决方案1】:

    我只使用过 PHP 端口,但是,您检查过您使用的文本分析器吗?这个FAQ 似乎表明像 PHP 版本一样,您需要使用不删除数字的不同版本。
    你可以找到analyzers here的列表

    为了确定,您已将 id 设置为可索引?

    【讨论】:

    • 我已将 ID 设置为可索引,是的。我正在寻找一个分析器列表,但找不到一个说它特别处理数字的,它似乎是 StandardAnalyzer ,我认为它已被弃用,所以也许这可能会有所帮助。
    • 重建索引,然后搜索,使用 StandardAnalyzer 而不是 SimpleAnalyzer 成功了!
    • 为了将来参考,您不想分析(也不要标记) id 字段,因为它们本质上应该是原子的,正如爱因斯坦在曼哈顿计划中和他的朋友们向我们展示的那样,分裂原子不是'不是件好事……
    猜你喜欢
    • 2011-12-13
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2021-10-27
    相关资源
    最近更新 更多