首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速搜索,无标记化

快速搜索,无标记化
EN

Stack Overflow用户
提问于 2015-11-19 01:35:57
回答 1查看 121关注 0票数 1

我正在寻找一种方法来对一百万个1千字节的字符串进行快速全文搜索。

加速这类事情的流行方法(Lucene,或MongoDB中的文本索引)在搜索时的高性能似乎来自于在索引构建时将内容字符串拆分成标记。这些标记基于自然语言单词。但是,我希望避免这种标记化,因为我希望搜索与自然语言单词无关的字符串。

我正在寻找一些功能类似的SQL“喜欢'%abc%'",但不仅仅是"abc”。例如,对于诸如"a.1“之类的字符串,并使其与诸如”..........a.123.......“之类的文档匹配。

我得到的印象是,从理论上讲,使用suffix trees是可能的,但我还没有找到合适的Java实现。我所说的“适当”是指不依赖于整个后缀树一次加载到内存中的方法。

这个发明出来了吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-19 01:40:03

所说的“适当”,我指的是不依赖于整个后缀树一次加载到内存中的方法。

据我所知和理解,后缀树没有办法只加载后缀树的一部分并使用它。你可以通过使用一个算法来避免这个问题,比如Aho-Corasick或Boyer-Moore算法,正如前面提到的@fge。

实现的,必须流行的是:https://github.com/abahgat/suffixtree

也有在字符串中找到子串的好的和简单的算法: DNA,它在“编译器:原理,技术和工具”中有很好的描述,例如,这个算法被用于在病毒数据库中搜索病毒签名的反病毒程序中,以及Aho–Corasick algorithm处理中,这是非常令人印象深刻的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33786673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档