2014-02-25 3 views
0

Java EE 애플리케이션은 Lucene을 사용합니다. 4. Lucene 색인에서 저는 10 백만 명의 정식 명을 받았습니다. 검색을 사용하면 Lucene이 다른 결과를 반환합니다. 동일한 응용 프로그램은 Windows의 개발 환경, AIX의 테스트 환경에서 잘 작동하지만 프로덕션 서버의 Lucene 검색은 훨씬 적은 레코드를 반환합니다. 동일한 쿼리는 개발에서 800 개의 결과를, 생산에서 20 개의 결과를 반환합니다. 우리는 프로덕션 환경에서 AIX와 Red Hat을 시도 할 것이지만 여전히 운이 없다.Lucene 검색은 다른 결과를 반환합니다.

프로덕션 환경에서 개발 환경으로 Lucene 색인 파일을 복사했으며 동일한 응용 프로그램으로 동일한 쿼리를 검색했습니다. 제 환경에서는 모두 정상적으로 작동하며 800 개의 결과가 있습니다. 내가 디버그로 응용 프로그램을 시작하고 텍스트로 Lucene 쿼리를 복사 한 다음 내 환경에서 Luke와 함께이 쿼리를 사용합니다. 800 개의 결과가 있습니다. 생산량이 많아서 개발 환경을로드하려고 시도하지만 Lucene은 안정적으로 작동하며 항상 800을 반환합니다.

문제의 원인을 어디에서 찾을 수 있습니까?

+0

이것은 일반적으로 다른 분석기로 인해 발생합니다. 특히 자바와 .net을 섞어 사용하면 더욱 그렇습니다. 모든 환경에서 동일한 설정과 불용어로 동일한 분석기를 사용하고 있는지 확인할 수 있습니까? – sisve

+0

모든 환경에서 작동하는 소스 코드가 동일하지만 다른 버전의 JRE가 있습니다. 색인을 업데이트 할 때 StandardAnalyzer가 사용됩니다. 쿼리 중에 분석기는 소스 코드에 명시 적으로 표시되지 않습니다. Luke에서 다른 분석기를 쿼리에 사용하려고 시도하지만, 항상 800 개의 결과가 있습니다. – bobzer

+0

파일 시스템이나 메모리에 인덱스를 어디에 저장하고 있습니까? – Yogesh

답변

0

업데이트 설치 중에 시스템 관리자는 서버 구성에서 Lucene 색인에이라는 상대 경로 을 지정한 다음 응용 프로그램 서버를 시작합니다. 첫 번째 시작 후 우리의 응용 프로그램은 데이터베이스에서 데이터의 전체 색인화를 수행 한 다음 2 시간마다 색인화를 증가시킵니다. 매일 밤 chron task로 서버를 재시작하므로 자동 재시작 후 Lucene 인덱스에 대한 상대 경로가 변경됩니다. 다음 증가 색인은 다른 폴더에 개의 새 색인 파일을 만들고 거기에 변경 사항을 저장합니다. 시스템 관리자에게 인덱스 파일을 요청하면 큰 인덱스를 먼저 생성하고 분석 할 것이지만 사실상 서버는 다른 인덱스 파일과 함께 작동합니다.

그래서 답은 다음과 같습니다. 친척이 아닌 Lucene 색인 폴더의 전체 경로를 지정해야합니다.

관련 문제