lucene 如何在一组多个文件中查找字符串和字符串模式?

bxgwgixi  于 2022-11-07  发布在  Lucene
关注(0)|答案(2)|浏览(115)

我有一个大约两百万个文本文件的集合,未压缩的总大小大约为10 GB。我希望在这个集合中找到包含短语的文档,这些短语看起来像“everytime”或“billclinton”(简单的不区分大小写的字符串匹配)。我还希望找到内容模糊的短语;例如“* 周”。
我试过用Lucene做索引,但是它在查找包含停用词的短语方面不太好,因为默认情况下,这些短语在索引时会被删除。xargs和grep是一个很慢的解决方案。对于这样的数据量,什么是快速且合适的呢?

2admgd59

2admgd591#

您可能需要使用ugrep实用程序进行模糊搜索,它比agrep快得多:

ugrep -i -Z PATTERN ...

这将运行多个线程(通常为8个或更多)以同时搜索文件。选项-i用于不区分大小写的搜索,-Z指定模糊搜索。您可以使用-Z3将模糊度从1增加到3,以允许最多3个错误(最大编辑距离3)或最多只允许3次插入(额外字符)。默认情况下支持Unicode正则表达式匹配。例如,for模糊匹配für(即一次替换)。

xvw2m8pv

xvw2m8pv2#

你可以使用PostgreSQL数据库。有全文搜索的实现,通过使用字典你可以定义你自己的停止词。我不知道这是否有帮助,但我会给予。

相关问题