2014-07-15 2 views
2

우리는 Lucene.net을 응용 프로그램에서 검색하는 데 사용하고 있습니다. 이제는 여러 언어를 지원해야하므로 인덱싱에 어떤 전략을 사용해야하는지 묻고 싶습니다. 다른 분석기, 문서 및 영어 및 기타 언어 필드가있는 동일한 색인 폴더가있는 다른 색인 폴더의 다른 언어 색인화 (언어 당 필드 수가 너무 많음) 결국 다른 대안이 있습니까? Pravin ThokalLucene 인덱싱 전략 다국어 지원

답변

3

이상적인 전략은 추가 언어 필드가 있고 다른 기존 필드는 여러 언어로 된 콘텐츠를 가져올 수 있습니다. 언어 필드의 값은 다국어 필드에 대해 서로 다른 언어 분석기를 동적으로 선택합니다. 그러나 본질적으로 한 필드는 용어 통계에 영향을주는 여러 언어로 된 내용을 갖습니다.

Lucene의 용어는 field : term이므로 일반적인 단어가있는 언어의 경우 용어 통계가 우려됩니다. 특히 한 언어에서 자주 사용되는 단어이고 다른 단어는 흔하지 않은 단어 인 경우 특히 그렇습니다. 최악의 경우는 한 언어로 된 정지 단어이고 다른 언어에서는 중요한 단어입니다. 이 경우라면 전략이 없습니다. 그러나 언어 설정에 따라 용어 통계에 영향을 미치지 않으며 여러 언어의 어휘가 상호 배타적 일 수 있습니다. 이 경우 TFIDFS 유사성이 작동 할 것으로 기대할 수 있습니다. 다른 유사성 클래스를 사용하는 경우 TFIDF가 작동하면 대부분 유사하게 작동합니다. 다른 전략

:

그것은 확실히 에 의존하는) 언어의 어떠한 지원하기 위해 (말할 m) b)는 다국어를 할 필요가 필드의 번호 (예를 들어 n)의 경우

. m과 n 모두는 당신이 multifields 접근 갈 수있는, 작은 :

당신이 m의 * N 이상 1000 개 필드를 공격하지 않는 한
(en -english, jp - Japanese, fr - French) 
field1_en, field1_jp , field1_fr, 
field2_en, field2_jp , field2_fr. 

, 이것은 안전한 전략이다. 필드가 거대하지 않을 때 Lucene의 성능은 떨어집니다.

언어가 거의없는 경우 다른 색인 폴더 (다른 스키마)가 작동 할 수 있지만 다른 언어의 결과를 반환해야하는 경우 많은 검색 엔진에서 문제가됩니다. 탄성 검색은 잘하지만.

+0

내 단일 문서에는 약 50 개의 필드가 있으며 성능을 유지하기 위해 색인 생성 및 검색을위한 최상의 전략이 될 7-8 언어를 지원할 계획입니다. –