由于标题有点混乱,我用代码说明一下:
@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 范围的所有作业
这可能吗?如果是这样,怎么办?