在单个文档中搜索许多字符串

时间:2017-10-15 21:54:59

标签: search lucene full-text-search

我有一个1M到10M字符串的列表,我想看看哪一个可以在一个文档中找到(比如说1页文本)。

我知道我可以使用Lucene(Solr / Elasticsearch)查找包含字符串的所有文档。但事实恰恰相反。

我可以基于其中一种字符串搜索算法(如Aho-Corasic,尝试等)编写一些特殊的解决方案,但我想我会重新发明轮子。这有什么库/框架吗?

(如果它有任何区别,我可以将字符串和文档分成单词)

1 个答案:

答案 0 :(得分:3)

此用例通常由“Percolator”组件解决。 Apache Solr [1]和Elasticsearch [2]都提供了这些功能。 基本上,您将“查询” Q 编入索引,然后在文档中构建查询 D ,以验证哪些查询与Q匹配。

[1] https://github.com/flaxsearch/luwakhttp://www.flax.co.uk/what-we-do/luwak/

[2] https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html