최대 절전 모드 검색으로 포함 된 텍스트 엔터티의 인덱싱에 몇 가지 문제가 있습니다. 엔티티는 변경할 수없는 다른 엔티티를 확장하므로 주석을 사용하는 것은 불가능합니다.최대 절전 모드 검색 인덱스 포함 된 맵
따라서 프로그래밍 API를 사용하여 매핑을 수행합니다. 그러나 Hibernate 검색은 삽입 된 텍스트 엔티티를 색인화하지 않습니다. '
SearchMapping mapping = ...;
mapping.entity(SpecialArticle.class)
.indexed()
.property("uid", ElementType.FIELD).documentId()
.property("articleNumber", ElementType.FIELD).field()
.property("someSpecialAttribute", ElementType.FIELD).field()
.property("texts", ElementType.FIELD)
.indexEmbedded().targetElement(ArticleText.class).entity(ArticleText.class)
.property("article", ElementType.FIELD).containedIn()
.property("someText", ElementType.FIELD).field();
문서의 ISN :
@Entity
class Article {
@Id
private long uid;
private String articleNumber;
@OneToMany (mappedBy = "article")
@MapKey(name = "languageCode")
private Map<String, ArticleText> texts;
...
}
@Entity
class ArticleText {
@ManyToOne
private ArticleEntity article;
private String languageCode;
private String someText;
...
}
@Entity
class SpecialArticle extends Article {
private String someSpecialAttribute;
}
그리고 여기 매핑의 발췌 한 것입니다 : 여기
은 (편의상 벗었) 엔티티 모델이 어떻게 생겼는지에 대한 간단한 예입니다.indexEmbedded().entity(...)
을 사용하는 것에 대해 상당히 명확하지만, 비슷한 매핑을 사용하여 색인화 된 다른 임베디드 엔티티 (다 대일 연관)가 있습니다.
지도가 사용 중이며 Hibernate Search가 속성을지도로 식별 할 수 없기 때문에 텍스트가 매핑되지 않은 것으로 생각됩니다. MapBrigde
과 BuildInMapBridge
이 있지만 매핑을 만들 때 사용하지 않는 것 같습니다.
누락되었거나 오류가있는 위치는 어디입니까?
Btw, 나는 이것을 Hibernate Search 4.0.1과 Hibernate 4.0.1 환경에서한다.