저는 10 억 단어/구를 신속하게 쿼리해야하는 자동 완성 기능을 구축 중이며 몇 가지 문제가 있습니다. 내 첫 번째 아이디어는 일종의 트리/삼항 트리 구조를 통과하는 것이었지만, 엄격하게 접두사 일치로되어있어 내 응용 프로그램에 적합하지 않습니다 (완전한 중위 일치를 원합니다). 그런 다음 더 큰 솔루션 인 SqlServer FullText Indexing, Lucene, Solr, Sphinx로 옮겼지만 Lucene 및 SqlServer FullText Indexing은 실제로 fulltext가 아니라 멋진 기능 (soundex, proximity 등)이 붙습니다. 나는 Levenshtein 편집 거리가 도움이 될 수있는 방법을 생각하려고 노력했으나, 높은 편집 거리 (즉, google과 ogl 편집 거리, 3의 편집 거리, 3은 일반적인 임계 값보다 높은 임계 값).빠른 중위 검색
제 질문은 Google/bing 등의 강력한 업체는 어떻게합니까? 그들은 조금이라도 무차별 적으로 굴니까? 나는 상상할 것이다. 그러나 나는 그것의 어떤지지를 발견 할 수 없다.
도움이 될 것입니다.
N-gram 접근 방식이 도움이 될 것으로 생각됩니다. 그렇다면 http://sna-projects.com/cleo/가 필요합니다. – aitchnyu
"Lucene은 전문이 아닙니다"? 그것에 대해 자세히 설명해 주시겠습니까? 대부분의 사람들이 사용하는 정의와 다른 정의가있는 것 같습니다. 또한, 당신은 각각 Solr/Lucene/Sphinx/등으로 무엇을 시도 했습니까? Solr이 자동 완성을 다루는 특정 구성 요소를 가지고 있다는 것을 알고 있습니까? –
"* talli *"를 검색하면 "metallica"가 일치한다는 의미로 전체 텍스트를 사용합니다. 그렇지 않은 sqlserver와 lucene 둘 다에서. – hermitt