우리는 현재 실행중인 응용 프로그램을 대체해야하는 프로젝트에서 Lucene과 함께 최대 절전 모드 검색을 사용할 계획입니다. Hibernate 검색 자체는 매우 잘 작동하지만 색인 생성에 대해 몇 가지 질문이 있습니다. 우리는 데이터베이스에 많은 레거시 데이터, 백그라운드에서 데이터를 변경하고 추가하는 데이터베이스 작업자 및 새로운 애플리케이션과 동시에 몇 시간 동안 실행될 예정인 이전 애플리케이션을 보유하고 있습니다. 레거시 데이터에 관한 것이라면 프로그램 처음 시작할 때 인덱싱을 한 번 실행할 수 있지만 이전 응용 프로그램과 데이터베이스 작업자가 수행 한 변경을 얻으려면 인덱스 업데이트를위한 백그라운드 도우미가 있어야합니다. 정기적으로. 만족스러운 성과로이를 달성 할 수있는 방법이 있습니까?Hibernate Search : 색인을위한 배경 도우미
0
A
답변
0
나는 비슷한 상황에 처해 있었고, 우리의 해결책은 야간 작업을 예약하여 인덱스를 다시 작성하는 것이 었습니다.
재 구축 프로세스가 충분히 빨라 졌는지 확인하는 데 약간의 시간을 할애해야했습니다. 약간의 연구가 필요하고 일부 중요한 엔티티와 중요한 관계에서 Hibernate의 2 차 수준 캐시를 사용할 수 있어야합니다.
물론이 접근법은 야간 가을까지 약간의 동기화 색인 작업을 허용 할 수있는 경우에만 유효합니다.
다른 사람들은 JMS를 통해 마스터/슬레이브 구성을 사용하여 하나의 단일 노드 (마스터)가 하루에 한 번 이상 인덱스를 다시 작성하기 때문에 인덱스를 다시 작성할 필요가있는 엔티티를 지정할 수 있습니다 중요한 테이블에서 이러한 작업을 제한 할 수 있어야합니다. 또는 레거시 앱이 실제로 접촉 한 작업 만 제한 할 수 있습니다.
일반적으로 이러한 "마스터"노드는 웹 요청이 슬레이브에 의해 제공되는 동안 인덱스를 다시 작성하고 인덱스를 새로 고치기 만하므로 마스터의 오버 헤드가 웹 서버 성능에 영향을주지 않으면 서 조절할 수 있습니다 . 마스터 노드에서 병렬 처리와 연결 풀을 조정하여 데이터베이스에 너무 많은 부하를주지 않도록하십시오.이 경우 가능한 한 빨리 완료하도록 튜닝하는 것이 아니라 선호합니다. 그것은 느리게 작동합니다.