2

我有一个包含 100 万行的文档,需要针对大约 8000 行的文件进行搜索。我最初尝试过 lucene,但是搜索这么多搜索请求所花费的时间需要时间。是否可以执行这样的搜索操作???我需要在包含 8000 行的纯文本文档中找到与搜索字符串相似的字符串。我尝试使用 lucene 的可能方法:

  1. 索引 8000 行文档并传递 100 万个搜索查询。
  2. 索引包含搜索查询的文档并将 8000 行文档作为搜索查询传递。我什至不确定这是一个正确的想法。
  3. 一个可能的:我从未尝试过。索引两个文档并比较它们的相似性。这甚至可以做到吗?
4

1 回答 1

1

目前尚不清楚您的搜索条件究竟是什么。

  1. 如果您想要模糊的结果并且您可以接受所需的时间,Lucene 可能是最佳选择。(其他好的解决方案可能不会快得多。)听起来您想将每一行索引为单独的文档。你以前这样做过吗?

    在 8 核服务器上对包含所有 Wikipedia 的 Lucene 数据库运行 7,500 个简短查询需要 10-20 分钟。所以它不是瞬时的。但这可能已经足够好了。

  2. 如果文件中的行完全对应,则有一个更简单的解决方案:

    grep -f million_lines.txt 8000_lines.txt
    

    我不知道这与使用 8,000 行文件作为模式集和使用百万行文件作为输入文件相比在性能方面如何。有人愿意发表评论吗?

于 2013-07-09T06:11:36.230 回答