Вот основная схема моего кода:Lucene не проходя через модель в индексе
@Entity
@Indexed
public class Document {
@IndexedEmbedded
@OneToMany(cascade = { PERSIST, MERGE }, mappedBy = "owner")
private final Set<Issue> issues = new LinkedHashSet<Issue>();
}
@Entity
public class Issue {
@ManyToOne
@JoinColumn(name = "owner_id")
@ContainedIn
private final Document owner;
@IndexedEmbedded
@OneToOne(cascade = ALL, optional = false)
@JoinColumn(name = "name_id")
@ForeignKey(name = "FK_issue__name_id__text_element")
private final TextElement name = new TextElement();
}
@Entity
public class TextElement {
@OneToMany(cascade = { CascadeType.ALL })
@JoinTable(
name = "text_element_paragraph",
joinColumns = { @JoinColumn(name = "text_element_id") },
inverseJoinColumns = { @JoinColumn(name = "paragraph_id") },
uniqueConstraints = {
@UniqueConstraint(
name = "UX_text_element_paragraph__paragraph_id",
columnNames = "paragraph_id"
)
}
)
@ForeignKey(
name = "FK_text_element_paragraph__text_element_id__text_element",
inverseName = "FK_text_element_paragraph__paragraph_id__paragraph"
)
@IndexedEmbedded
private List<Paragraph> paragraphs = new LinkedList<Paragraph>();
}
@Entity
public class Paragraph {
@Field(name = "data", analyze = Analyze.YES)
@Column(name = "s_data", nullable = false)
private String data;
}
Я думал, что Lucene будет индексировать данные в пункте, но когда я открываю Луки он показывает «issues.name .id "(id поступает из класса Document extends). Почему данные не индексируются? Спасибо :)
Следует также отметить, что я удалил ручного индексатора из метода обновления в службе CRUD. После этого все перестало работать, может быть, что-то с моими конфигурациями?
На первый взгляд это выглядит правильно. Какую версию поиска вы используете? Как вы индексируете и уверены ли вы, что ваши тестовые данные фактически имеют непустые «данные»? – Hardy
@ Hardy Для поиска в спящем режиме Я использую версию 4.1.1 Final. Данные теста должны содержать все непустые. Я думаю, что настоящая проблема заключается в том, что он не обновляет индекс при обновлении моделей. – Kat
Как вы создаете/создаете экземпляр модели? Вы можете показать свой индексный код? Работает ли он, когда вы сохраняете новые объекты? Вы отмечаете, что он не работает во время обновлений. – Hardy