Hibernate在多个字段上搜索Facet

时间:2016-07-18 13:17:41

标签: java hibernate lucene hibernate-search

让我们假设一个索引包含从@Indexed实体创建的多个字段:

if ($_SERVER["REQUEST_METHOD"] == 'POST')

是否可以从两个字段构建一个facet聚合值?

例如 - A_& _B:

  • AX
  • AZ
  • BX
  • BZ

还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

我认为最好的办法是定义聚合两个字段值的方法,并注释此方法以将其作为方面索引。

类似的东西:

@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返回的构面值更好。