小编ann*_*ria的帖子

HibernateSearch ClassBridge - 排序和分面不适用于HS 5.5.1

我刚刚在hibernate搜索论坛上发布了这个并没有得到任何响应,所以再次尝试在stackoverflow ...

由于从HS 4.5.1迁移到HS 5.5.1,我们在排序和分面方面存在问题.

我们所有的索引都使用类桥来完成,该类调用CDI-Bean来进行实际的索引.在我们的系统中,索引哪些字段的配置是动态的,并且可以在运行时更改,因此我们不能使用HS注释.

排序:我们希望利用docureues利用lucene的新排序功能.我们尝试向MetadataProvidingFieldBridge类桥添加接口以提供哪些字段是排序字段的信息,但是当类桥被初始化时(当jboss启动时)CDI-bean尚不可用.

问题1:SearchIntegrator当CDI-bean可用或我们的索引配置发生变化时,有没有办法在以后重新初始化HS- ?目前HS回归到使用UninvertingReaderfor来处理没有docvalues的排序字段.

问题2:将来会支持这个吗?使用性能有多"糟糕" UninvertingReader

使用faceting我们面临类似的问题,我们不能使用@Facet-annotation,因为配置是动态的.目前我们直接使用lucene的faceting API.

问题3:HS是否有计划在不久的将来通过类桥添加分面信息,类似于MetadataProvidingFieldBridge?将来Hibernate Search会支持类桥吗?

ClassBridge代码:

public class FtiClassBridgeCE implements FieldBridge, MetadataProvidingFieldBridge
{
@Override
public void set(String fieldName, Object value, Document document, LuceneOptions options)
{
    if( !(value instanceof ComplexEntity))
        return; // ignore

    ComplexEntity object = (ComplexEntity)value;
    // FtiService does the actual indexing by adding fields to given document
    Configuration.service( FtiService.class).setIndexData( object, new FtiDocumentHS( document, options));
}

/* …
Run Code Online (Sandbox Code Playgroud)

java sorting lucene hibernate hibernate-search

5
推荐指数
0
解决办法
207
查看次数

标签 统计

hibernate ×1

hibernate-search ×1

java ×1

lucene ×1

sorting ×1