用于休眠搜索的复合面

Composite facet for hibernate search

我有两个实体:ActionUser 具有多对一关系。
我搜索操作并希望有一个 user full name 方面,但我有 first_namelast_name.[=20 而不是数据库中的 full_name 列=]

有没有什么方法可以在休眠搜索中创建一个可以同时使用 firstNamelastName 的组合面?或者有没有办法创建一个组合字段 fullName,它将存在于搜索索引(带有一个方面)但不存在于数据库中?

映射如下:

@Entity
public class Action {

    ...

    @IndexEmbedded
    private User user;

}


@Entity
public class User {

    ...

    @Facet
    @Field(analyze = Analyze.NO)
    private String firstName;

    @Facet
    @Field(analyze = Analyze.NO)
    private String lastName;

}

您可以在用户对象的方法上使用@Facet 和@Field。

所以你可以这样定义:

@Facet
@Field
public String getFullName() {
   return new StringJoiner(" ").add(firstName).add(lastName).toString();
}