2012-05-09 3 views
2

최대 절전 모드 검색을 통합하려고 시도하는 앱이 있습니다. 나는 Hibernate Search 3.4.2를 사용하고있다. 나는 다음과 같은 도메인 클래스를 가지고있다.최대 절전 모드를 얻는 방법 인덱스 검색

@Indexed 
public Group { 

    @Fieldindex (index = Index.TOKENIZED, store = Store.YES) 
    private String groupName; 
}

필자는 몇 개의 그룹을 생성하고 데이터베이스에 저장한다. 일단 데이터베이스에 저장되면 색인을 생성 한 다음 주어진 텍스트 문자열을 검색합니다. 이것은 작동하는 것 같습니다.

내가 가지고있는 문제는 인덱스를 만든 후에 만들어진 모든 새 그룹이 인덱싱되지 않는다는 것입니다. 필자가 읽은 바에 따르면 일단 색인이 생성되면 새로운 항목이 새 값으로 자동 색인 될 것이지만 이것이 내가 얻는 행동처럼 보이지 않는다고 생각했습니다. 구성 방식에서 놓친 부분이 있습니까? 아니면 Hibernate Search에 새로운 객체를 추가하도록 지시하기 위해 수동으로 뭔가를해야합니까?

없이 ... 나는 조금 혼란 스러워요, 대답



[편집] 다음과 같이 나는 나의 최대 절전 모드 검색 confguration 내의 persistence.xml에 포함되어 JPA를 사용하고 있습니다 :

  
<property name="hibernate.search.default.directory_provider" value="filesystem"/> 
<property name="hibernate.search.default.indexBase" value="D:\var2\lucene\indexes"/> 



나는 인덱스 파일이 생성되는 것을 볼 수있다, 나는 내용을 볼 누가 복음을 사용할 수 있습니다 나는 새 개체를 지속 할 때, 그들은 단지 이제까지 업데이 트하지 않는 것.

+0

당신은 매우 친절하고 최대 절전 모드 검색 구성을 게시 하시겠습니까? @ 스티브 –

답변

1

명시된대로 documentation "기본적으로 Hibernate를 통해 개체가 삽입, 업데이트 또는 삭제 될 때마다 최대 절전 모드 검색은 해당 Lucene 인덱스를 업데이트합니다". 그건 아마도 당신이 그것을 강제로 시도해 볼 수도, 그렇지 만약 내가 실수로

= 수동 hibernate.search.indexing_strategy을 설정하지 않은 경우

은 내가 무엇을 할 것은 내의 persistence.xml을 확인하고보고하는 것입니다 그게 작동하는지 확인하십시오.

hibernate.search.indexing_strategy = 당신이 사용하는 프레임 워크

이벤트? 어쩌면이 질문의 마지막 post을 확인하십시오.

// Jakob

+0

기본적으로 그 값을 설정하지 않았습니다. persistence.xml 파일에 "이벤트"indexing_strategy를 추가했지만 효과가 없습니다. – Steve

+0

해당 게시물이 가리키는 솔루션을 시도하면 hibernate.search.worker.batch_size = 1로 설정하면됩니다. 포인터를 주셔서 감사합니다 ... – Steve

+0

batch_size를 1로 설정하는 것은 잘못된 방법입니다. 그렇게하면 모든 트랜잭션 범위를 우회 할 수 있습니다. 자동 인덱싱은 일반적으로 트랜잭션 커밋 (이 세션/트랜잭션 내에서 변경된 모든 엔티티)에서 발생해야합니다. 내 생각 엔 당신의 문제는 거래 처리 어딘가에있다. 추가 도움말을 얻으려면 설정에 대한 추가 정보를 게시해야합니다. – Hardy

관련 문제