【问题标题】:Can I use lucene for full text search in a file , but without creating indexes.我可以使用 lucene 在文件中进行全文搜索,但不创建索引。
【发布时间】:2016-05-16 12:08:12
【问题描述】:

我想在我的应用程序中进行全文搜索(一次我有大约 1000 个文档)。但几乎每次这些文件都会有所不同。我想使用 lucene 进行全文搜索,但不创建索引。我不想为索引维护单独的辅助/主内存。

这可能吗?如果是,那么我将对性能产生什么影响(假设我将拥有 1000 个文档,最大文档约为 10-15 MB)。

另外,Lucene 有其他替代品吗?

【问题讨论】:

    标签: java lucene full-text-search


    【解决方案1】:

    是的,您可以使用RAMDirectory 创建内存驻留索引。只要您的索引不太大,它通常应该表现良好。请注意文档中的警告:

    这个类不适用于巨大的索引。超过数百兆字节的所有内容都会浪费资源(GC 周期),因为它使用 1024 字节的内部缓冲区大小,产生数百万字节[1024] 数组。此类针对小型内存驻留索引进行了优化。它在多线程环境中的并发性也很差。

    另外,是的,还有其他全文搜索工具...

    【讨论】:

    • 非常感谢您的回答。
    • 我还有一个问题。默认情况下,lucene 只在文本文件中搜索。对于不同类型的文件,我必须首先使用不同的提取方法来提取文本。 lucene 中是否有任何通用方法可以对所有类型的文件执行此操作?
    • @NikitaBansal - 不,该任务超出了 Lucene 的范围。 Tika 是一个非常典型的工具,用于从不同的文件格式中提取文本。
    • 我有一个应用程序,我在其中通过 TIKA 解析各种文档,并通过 Lucene 在解析后的文档中搜索内容。除了“.xml”文件之外的所有文件,这给了我很好的结果。我没有收到任何运行时错误。但不向我提供 xml 文件,即使 xml 文件中存在搜索词。谁能帮我解决这个问题。
    • 我得到了上述问题的答案。 :-).. 可能是因为 TIKA 将模式视为一个完整的单词(前后有一个空格)。而xml没有这样的空格概念。而是标签
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2011-03-20
    • 2015-09-21
    • 2017-09-10
    相关资源
    最近更新 更多