2013-07-30 2 views
1

현재 Lucene을 사용하여 많은 양의 문서를 검색하고 있습니다.단일 문자로 Lucene 성능 저하

일반적으로 문서의 개체 이름에서 검색 중입니다.

나는 stopAll의 null 목록과 함께 standardAnalyser를 사용하고 있습니다. 이것은 'and'와 같은 단어를 검색 할 수 있음을 의미합니다.

검색 용어는 다음과 같습니다 (: 벙커 + 키 + 키 * S) (: 0x000bunkers * 키)

은 0x000이 확인 결과 목록까지 높은 온다 있는지 확인하는 접두사입니다.

'키'입력란에는 우편 번호와 같은 기타 정보도 들어 있습니다.

적어도 하나 이상 일치해야합니다.

이제 배경이 주요 문제로 처리되었습니다.

단일 문자로 용어를 검색 할 때 어떤 이유로. 그것이 단지 벙커 이건 벙커 이건간에 0.5 초도 안 걸리는 '벙크'를 말하는 것과 비교하면 약 1.7 초가 걸립니다.

필자는 정렬 작업을 수행했으나 아무런 차이가 없었습니다. 나는 접두어를 붙이고 그것없이 시도했다.

누군가 다른 사람이 이런 일을 한 적이 있는지 궁금한 점이 있거나 왜 이런 일을 저지르겠습니까?

감사합니다.

+0

느리게 실행되는 Lucene이라는 것을 어떻게 알 수 있습니까? 결과 집합에 따라 속도가 느려지는 검색을 수행하는 코드 일 수 있습니다. 검색을 어떻게 테스트하고 있습니까? – Digbyswift

답변

1

색인에서 가장 일반적으로 사용되는 용어는 검색하는 데 가장 느린 용어입니다.

중지 단어를 제거하지 않는 StandardAnalyzer를 사용하고 있습니다. 또한 구두점에 단어를 분할하므로 John'sJohns의 두 용어로 색인됩니다. 이 분할은 색인에 s의 _ 생을 많이} 성합니다.

색인에서 용어가 많이 사용될수록 Lucene이 검색 시간에 더 많은 작업을 수행해야합니다. bunk과 같은 용어는 색인에서 엄청난 양의 순서로 발생하기 쉽기 때문에 검색시 처리하는 데 훨씬 적은 작업이 필요합니다.