【问题标题】:How to partial search over lucene index? (search some documents, not all)如何对 lucene 索引进行部分搜索? (搜索一些文件,不是全部)
【发布时间】:2011-12-14 01:56:05
【问题描述】:

不确定标题是否正确,但我想要的是能够从 lucene 索引中仅搜索少数文档(而不是全部)。

将其视为以下上下文:

用户想要在一本书中搜索,该书在 lucene 上逐章索引(每章对应一个文档)。用户需要能够选择他想要搜索的章节,避免与他的学习无关的发生。

是否可以将搜索限制为仅某些文档?还是我必须搜索所有索引然后过滤结果?

谢谢!

【问题讨论】:

    标签: search lucene indexing partial


    【解决方案1】:

    Lucene 允许您应用查询过滤器,以便您可以将结果限制为仅匹配过滤条件的结果。
    所以基本上你可以搜索 chapter:chapter1 并且搜索将仅限于第一章文档

    【讨论】:

    • 感谢您提供遮阳篷!这是有道理的,我没有考虑过,没有必填字段的文档会被简单地忽略(不搜索,没有性能衰减)。
    【解决方案2】:

    查看 QueryWrapperFilter。它会让你轻松做这种事情。

    但请注意,这更便于编码。这不会真正提高性能,因为在后台,它有效地搜索整个索引,但它更容易编写“搜索中的搜索”。搜索整个索引不是问题,因为这是索引的全部目的——使索引搜索非常快。这假设您有一个附带索引的图书 ID。如果是这种情况,那么在您的搜索中包含图书 ID 可以非常快速地搜索该特定图书的整个索引。

    【讨论】:

    • 感谢您的回答!我真正关心的是性能,我认为搜索所有索引可能会使性能变得更糟,但也许我不会遇到那种问题(索引不超过 1000 个文档)。
    • 如果您的文档少于 1000 个,那么您的搜索时间应该在 1 毫秒左右——性能不会有问题!
    猜你喜欢
    • 1970-01-01
    • 2018-11-23
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2012-10-22
    相关资源
    最近更新 更多