由于标题有点令人困惑,让我用代码来说明:
@Indexed @Entity
public class Person {
@Id @GeneratedValue
private Long id;
@OneToMany(mappedBy = "employee")
@IndexedEmbedded
private Set<Job> jobs = new LinkedHashSet<>();
}
@Entity
public class Job {
@Id @GeneratedValue
private Long id;
@Field
private Boolean current;
}
现在我有两种不同的搜索方案:一个人当前工作的属性以及该人曾经拥有的所有工作。我知道我可以在事后应用过滤器或者在查询中添加另一个子句,但是如果可能的话我宁愿在索引中复制这些信息,所以我可以有两个不同的搜索查询,比如说
(jobs.id: [10 TO 100])
适用于id
介于10到100之间的所有工作(currentJobs.id: [10 TO 100])
适用于此ID范围这可能吗?如果是这样,怎么样?
答案 0 :(得分:0)
您可以为 Set 列表实现自定义网桥,该列表会迭代列表并仅为当前作业编制索引。查看文档以获取有关自定义网桥的信息和示例。