Spring JPA + Hibernate Searchを使用して、アプリケーションで永続性と検索を実装します。Spring JPA + Hibernate Search:検索インデックス(Lucene)のみを更新するには?
私はこのクラスについての考えを与えるために、この
public class FeatureMeta {
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(unique=true)
private String uri;
@Column
@Field
private String name;
@Field
@Column
private String businessDesc;
@Field
@Column
private String logicalDesc;
.
.
@Field
@Column(insertable=false,updatable=false)
private Long totalDownloads;
.
.
}
のようなモデルがあり、「FeatureMetaは」非常に稀にしか更新しないメタデータ情報を保持します。
ただし、「totalDownloads」フィールドは、この「機能」に関する情報をダウンロードするたびに常に変更されます。 基本的に "totalDownloads"はメタデータの一部ではありませんが、 "feature search"の検索結果に "totalDownloads"を表示する必要があるため、このフィールドをモデルに入れる必要がありました。
MySQLとLuceneの両方のインデックスを更新するのと同じJPAリポジトリを使用します。
私の質問は、 Luceneインデックスの "totalDownloads"を更新するだけで、 "totalDownloads"フィールドが変更されたときはいつでもMySQLのエンティティを更新することはできますか?
このダウンロード数を維持したくない理由は何ですか?それは他の場所に保管されていますか?もしそうなら、あなたのメタデータと、この情報が格納されているこの他の場所との間に、いくつかの関係リンクがありますか?あなたがインデックスを壊してしまった(そしてそれが起こることができる)日にちをどこにでも残さないと、 "totalDownloads"フィールドに正しいデータでそれらを再構築する方法がありません... –