2013-01-08 2 views
0

Lucene을 통해 동시에 인덱싱하고 있습니다. 각각 대략 5k 문서. 크기는 20kB이고 updateDocument 메서드를 통해 자주 업데이트해야합니다.Lucene updateDocument 속도

NRT를 사용하여 최대 50 개의 스레드가 문서를 업데이트 할 수 있습니다. 커밋은 100 개의 업데이트/삽입 또는 10 분의 타임 아웃 후에 별도의 스레드에서 수행됩니다.

지금까지 각 문서 업데이트의 평균 지속 시간은 1 초이며 이벤트 요약 최고점 (80 초, 구체적인 문서를 분석해야 함)입니다.

문서 업데이트 속도를 높이려면 어떤 정책/최적화를 사용해야한다고 조언 해 주실 수 있습니까?

+0

효율적이고 빠른 업데이트가 필요한 경우 [NRT] (http://wiki.apache.org/lucene-java/NearRealtimeSearch) 지원을 참조 할 수 있습니다. 지난 몇 년 동안이 분야에서 많은 작업이 이루어졌습니다. –

+0

그게 문제인지는 잘 모르겠습니다. 나는 NRT 검색이 생명력을 향상시키고 즉시 업데이트를 검색 할 수 있다고 생각한다. 여기서 문제가되는 것처럼 들리 겠지만, 업데이트가 완료되기까지 너무 오랜 시간이 걸리며, 약 1.5 시간 만에 5000 건의 업데이트가 완료됩니다. 그 맞습니까? – femtoRgon

+0

분석 체인이 매우 비싸지 않으면 한 문서를 업데이트하는 데 1 초가 매우 깁니다. 프로필 수 있습니까? 병목 현상이란 무엇입니까? – jpountz

답변

0

응용 프로그램에서 색인 작성의 관점에서 유익하지 않은 최신 판독기를 요구할 때 NRT가 메모리 문서를 비우는 것을 발견했습니다.

더 큰 문서가 자주 플러시를 유발하므로 정상 인덱싱으로 전환하고 메모리 대신 항목 수에 의해 처리되도록 플러시 정책을 변경합니다.