0

Hibernate Search を使用してファセット検索を実装しようとしています。モーダル間でファセット検索を有効にするには、次の例のように @Field アノテーションを追加する必要があることがわかりました

@Entity
@Indexed(index = "index/books")
public class Book {
    private Long id;
    private String title;
    private String author;
    private String category;
    private int price;

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }

    @Field(name = "title", analyze = Analyze.YES, store = Store.YES)
    public String getTitle() {
        return title;
    }

    public void setTitle(final String title) {
        this.title = title;
    }

    public void setId(final Long id) {
        this.id = id;
    }

    public void setAuthor(final String author) {
        this.author = author;
    }

    @Field(analyze = Analyze.NO, store = Store.YES)
    public String getAuthor() {
        return author;
    }

    @Field(analyze = Analyze.NO, store = Store.YES)
    public String getCategory() {
        return category;
    }

    public void setCategory(final String category) {
        this.category = category;
    }

    @Field(analyze = Analyze.NO, store = Store.YES)
    public int getPrice() {
        return price;
    }

    public void setPrice(final int price) {
        this.price = price;
    }

}

これは、作成されたすべての新しいレコードで機能すると思いますが、既存のデータはどうなりますか? 休止状態のファセット検索で既存のデータを有効にする方法はありますか?

4

1 に答える 1

0
            FullTextSession fts =
   org.hibernate.search.Search.getFullTextSession(getSession());

        List<YourEntity> entities = super.listAll();
for (YourEntity item : entities) {
   fts.index(item); //manually index 
}
于 2013-10-06T18:28:20.693 に答える