0

新しい Photo エンティティが入るたびに、Hibernate Search を使用して Lucene インデックスを自動的に更新しています。写真データが保存または編集されると、非常に迅速に自動的にインデックスに登録されます。ただし、コメントが追加されると、それは決して取り込まれません。そして、それはまさに@IndexedEmbedded/@ContainedInすべきことですよね?

私のコードはおおよそ次のとおりです。

@Indexed(index="/indexes/photo.index")
@Entity
public class Photo {

    @IndexedEmbedded
    @OneToMany(mappedBy="photo", fetch = FetchType.LAZY)
    public List<Comment> comments;

}

@Indexed(index="indexes/comment.index")
@Entity
public class Comment {

    @ContainedIn
    @ManyToOne
    public Photo photo;

    @Field
    public String text;
}

次の lib バージョンを使用しています。

hibernate-search-3.4.0.Final
lucene-core-3.6.0
lucene-analyzers-3.1.0

注: 2 つの注釈の順序を間違えたと言ってすぐにジャンプする人のために、逆の方法も試したと言いたいと思います。うまくいきません。

4

1 に答える 1

0

バージョン 3.4.0.Final は、ダーティチェックの最適化を含む最初のもので、これは後のバージョンでより安定しました。Hibernate 構成プロパティを設定してみてください。

hibernate.search.enable_dirty_check=false

そのような最適化があなたに影響を与えていないことを確認してください。

また、このリリースが設計された Lucene バージョンを使用しないと、次のような問題が発生する可能性があります。

lucene-core-3.1.0
lucene-analyzers-3.1.0
于 2013-08-13T20:22:14.147 に答える