多个字段上的 Hibernate Search Facet
Hibernate Search Facet on multiple fields
假设一个索引包含多个从@Indexed 实体创建的字段:
----------------------------------
| FieldA | FiedlB | FieldC | ... |
----------------------------------
| AX | BX | other | ... |
----------------------------------
| AZ | BZ | value | ... |
----------------------------------
是否可以从两个字段构建一个 facet 聚合值?
例如 - A_&_B:
- 斧
- 阿兹
- BX
- BZ
还有其他可能的选择吗?
我认为最好的办法是定义一个方法来聚合两个字段的值并注释该方法以将其索引为一个方面。
类似于:
@Field(bridge = @FieldBridge(impl = CollectionOfStringsFieldBridge.class), analyze = Analyze.NO)
@Facet
public List<String> getAggregatedField() {
return yourAggregatedValue;
}
CollectionOfStringsFieldBridge 类似于:https://github.com/hibernate/hibernate-search/blob/master/orm/src/test/java/org/hibernate/search/test/embedded/fieldoncollection/CollectionOfStringsFieldBridge.java
这比手动聚合 Lucene 返回的构面值要好。
假设一个索引包含多个从@Indexed 实体创建的字段:
----------------------------------
| FieldA | FiedlB | FieldC | ... |
----------------------------------
| AX | BX | other | ... |
----------------------------------
| AZ | BZ | value | ... |
----------------------------------
是否可以从两个字段构建一个 facet 聚合值?
例如 - A_&_B:
- 斧
- 阿兹
- BX
- BZ
还有其他可能的选择吗?
我认为最好的办法是定义一个方法来聚合两个字段的值并注释该方法以将其索引为一个方面。
类似于:
@Field(bridge = @FieldBridge(impl = CollectionOfStringsFieldBridge.class), analyze = Analyze.NO)
@Facet
public List<String> getAggregatedField() {
return yourAggregatedValue;
}
CollectionOfStringsFieldBridge 类似于:https://github.com/hibernate/hibernate-search/blob/master/orm/src/test/java/org/hibernate/search/test/embedded/fieldoncollection/CollectionOfStringsFieldBridge.java
这比手动聚合 Lucene 返回的构面值要好。