2

休止状態の検索を統合しようとしているアプリがあります。HibernateSearch3.4.2を使用しています。次のようなドメインクラスがあります。

@Indexed
パブリックグループ{

    @Fieldindex(index = Index.TOKENIZED、store = Store.YES)
    プライベート文字列groupName;
}

私のテストケースでは、いくつかのグループを作成してデータベースに保存します。データベースに保存されたら、インデックスを作成して、指定されたテキスト文字列を検索します。これはうまくいくようです。

私が抱えている問題は、インデックスの作成後に作成された新しいグループにはインデックスが付けられないことです。私が読んだことから、インデックスが作成されると、永続化された新しいアイテムは自動的に新しい値でインデックス付けされると思いましたが、これは私が得ている動作ではないようです。設定の仕方で見逃したものはありますか?または、インデックスを作成する新しいオブジェクトを追加したことをHibernate Searchに通知するために、手動で何かを行う必要がありますか?

言うまでもなく、私は少し混乱しています...



[編集]JPAを使用しているので、休止状態の検索構成は次のようにpersistence.xmlに含まれています。

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



インデックスファイルが作成されていることがわかります。Lukeを使用してコンテンツを表示できます。新しいオブジェクトを永続化しても、インデックスファイルが更新されていないように見えます。

4

1 に答える 1

1

ドキュメントに記載されているように、「デフォルトでは、Hibernate を介してオブジェクトが挿入、更新、または削除されるたびに、Hibernate Search はそれに応じた Lucene インデックスを更新します」。

私がすることは、persistence.xml をチェックして、誤ってhibernate.search.indexing_strategy = manualを設定していないかどうかを確認することです。

そうでない場合は、強制的に実行して、それが機能するかどうかを確認できますか?

hibernate.search.indexing_strategy = イベント

どのフレームワークを使用していますか? たぶん、この質問の最後の投稿をチェックしてください。

// ヤコブ

于 2012-05-09T13:52:59.030 に答える