2017-10-15 7 views
0

나는 1M ~ 10M 문자열 목록을 가지고 있으며 그 중 어느 것이 하나의 문서 (예 : 1 페이지의 텍스트)에서 발견되는지보고 싶습니다.하나의 문서에서 많은 문자열 검색

Lucene (Solr/Elasticsearch)을 사용하여 문자열이 포함 된 모든 문서를 찾을 수 있음을 알고 있습니다. 그러나 이것은 반대입니다.

Aho-Corasic과 같은 문자열 검색 알고리즘 중 하나를 기반으로하는 임시 솔루션을 프로그래밍 할 수 있지만 휠을 다시 작성해야한다고 가정합니다. 이것에 대한 라이브러리/프레임 워크가 있습니까?

답변

2

이 사용 사례는 일반적으로 "여과기"구성 요소에 의해 해결된다 (이것은 어떤 차이가 있는지 나는 단어로 문자열 및 문서를 분할 괜찮입니다). Apache Solr [1]과 Elasticsearch [2] 모두 기능을 제공합니다. 기본적으로 "쿼리"Q을 인덱싱 한 다음 문서에서 D 쿼리를 작성하여 어떤 쿼리가 일치하는지 확인합니다.

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

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