indexing - 在大型数据库中搜索(非常)近似子串

标签 indexing lucene substring information-retrieval

我正在尝试在大型数据库中搜索长的、近似的子字符串。例如,一个查询可能是一个 1000 个字符的子字符串,它可能与匹配项相差数百个编辑的 Levenshtein 距离。我听说索引 q-gram 可以做到这一点,但我不知道实现细节。我也听说 Lucene 可以做到,但是 Lucene 的 levenshtein 算法是否足够快以进行数百次编辑?也许是抄袭检测的​​世界之外的东西?任何建议表示赞赏。

最佳答案

Q-gram 可能是一种方法,但还有其他方法,例如 Blast、BlastP——用于蛋白质、核苷酸匹配等。

Simmetrics库是字符串距离方法的综合集合。

关于indexing - 在大型数据库中搜索(非常)近似子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432276/

相关文章:

sql-server - SQL Server 索引 - HEAP 上的非聚集索引

java - Lucene索引: getting empty result while query

java lucene 自定义分析器和 tokenizer 在 termvector 偏移中创建问题?

csv - Logstash-CSV列中的子字符串

PHP 正则表达式 - 检测未闭合的括号

python - 分配给python中的不连续切片

mysql - 我应该在 mysql 表中的 tinyint 字段类型上创建索引吗?

java - Solr:带空格和不带空格的匹配结果

nhibernate - PostgreSQL 全文搜索与 NHibernate.Search 通过 Lucene.Net

java - 在 Java 中拆分字符串