В настоящее время я работаю над проектом, который включает использование Hibernate Search.В настоящее время проект использует чистый SQL для своих поисков, и мы хотели бы вместо этого использовать текстовый поиск (необходимость знать и правильно писать первое слово может раздражать).
Схема состоит в том, что продукт может иметь несколько версийи текущая версия содержит название продукта.
Public Class Product extends ProgEntity
{
private List<ProductVersion> versions = new ArrayList<ProductVersion>();
...
}
Public Class ProductVersion extends ProgEntity
{
String productName;
...
}
Мне нужно иметь возможность искать продукт по его названию.Я смог проиндексировать ProductVersions по productName без особых проблем, однако индексация Product оказывается более серьезной проблемой.
После некоторых исследований это то, что у меня есть, однако, когда я обновляю продукт в БД, индекс не создается.
@Entity
@Indexed
Public Class Product extends ProgEntity
{
@IndexedEmbedded
private List<ProductVersion> versions = new ArrayList<ProductVersion>();
...
}
@Entity
@Embeddable
Public Class ProductVersion extends ProgEntity
{
@Field
String productName;
...
}
DocumentID является частью ProgEntity.Я должен быть уверен, что, если я обновлю продукт или версию продукта, он будет правильно проиндексирован, чего, похоже, сейчас не происходит.
Есть ли какие-либо предложения о том, что я делаю неправильно?