如何根据休眠搜索中嵌入 id 中的属性之一获取搜索命中?

How to get search hits based on one of the attributes in embedded id in hibernate search?

我有以下休眠搜索实体 class:

@Entity
@Indexed
public class TableA {
    @EmbeddedId
    @DocumentId
    @FieldBridge(impl = TableA_Bridge.class)
    @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
    private TableA_Pk id;
    /*
    Other fields;
    setters and getters;
    */  
}

以下是TableA_Pkclass:

@Embeddable
public class TableA_Pk implements Serializable {
    private static final long serialVersionUID = 1L;
    @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
    private String a;
    private String b;
    private String c;
    /*
    setters and getters;
    */  
}

那么,现在我的问题是,如何根据 TableA_Pk class 中的字段 a、b 或 c 找到匹配项?

您对 TableA_Bridge 的实现应该将每个 TableA_Pk 实例中的字段添加到 Lucene 文档中,使用适当的索引选项,您可以选择您想要的字段名称。

这将使它们可搜索。

使用 @FieldBridge 注释是 "advanced" 方法,您可能只想使用 @IndexedEmbedded,这将自动添加所有带有 @Field 注释的字段。 在这种情况下,您不会使用 @FieldBridge 注释。