@Entity
@Table(name = "asset")
@Indexed(index = "asset")
@Analyzer(impl = IKAnalyzer.class)
public class Asset {
@Column(name = "asset_name", length = 128, nullable = false)
@Field(name = "asset_name", index = Index.TOKENIZED, store = Store.YES)
private String assetName;
@Column(name = "type", length = 32, nullable = false)
@Enumerated(value = EnumType.STRING)
@Field(name = "type", index = Index.TOKENIZED, store = Store.YES)
private AssetTypeEnum type;
}
これは、休止状態検索の私の構成です。AssetTypeEnum は列挙型です。データベース内の既存のデータにインデックスを付けたい。これがコードです
Session session = sessionFactory.openSession();
FullTextSession fullTextSession = Search.getFullTextSession(session);
Transaction tx = fullTextSession.beginTransaction();
fullTextSession.createIndexer(Asset.class)
.batchSizeToLoadObjects(25)
.cacheMode(CacheMode.IGNORE)
.threadsToLoadObjects(5)
.threadsForSubsequentFetching(20)
.startAndWait();
tx.commit();
session.close();
新しいアセットを作成しても問題ありません。アセットは自動でインデックス化できます。しかし、dbに存在するデータの列挙型でインデックスを作成することはできません。列挙型を削除すると、機能します。誰かがこの問題を満たしていますか?ありがとうございました。