【问题标题】:Hibernate search storing byte[] in index休眠搜索在索引中存储字节 []
【发布时间】:2011-12-09 10:39:09
【问题描述】:

我的 POJO 中有以下配置:

@Field(index = Index.NO, store = Store.YES)
private byte[] file;

当我启动我的 Apps 容器时,出现以下异常:

原因:org.hibernate.search.SearchException:无法猜测文件的 FieldBridge 在 org.hibernate.search.bridge.BridgeFactory.guessType(BridgeFactory.java:249) 在 org.hibernate.search.engine.AbstractDocumentBuilder.bindFieldAnnotation(AbstractDocumentBuilder.java:707) 在 org.hibernate.search.engine.AbstractDocumentBuilder.checkForField(AbstractDocumentBuilder.java:568) 在 org.hibernate.search.engine.AbstractDocumentBuilder.initializeMemberLevelAnnotations(AbstractDocumentBuilder.java:436) 在 org.hibernate.search.engine.AbstractDocumentBuilder.initializeClass(AbstractDocumentBuilder.java:383) 在 org.hibernate.search.engine.AbstractDocumentBuilder.checkForIndexedEmbedded(AbstractDocumentBuilder.java:631) 在 org.hibernate.search.engine.AbstractDocumentBuilder.initializeMemberLevelAnnotations(AbstractDocumentBuilder.java:440) 在 org.hibernate.search.engine.AbstractDocumentBuilder.initializeClass(AbstractDocumentBuilder.java:383) 在 org.hibernate.search.engine.AbstractDocumentBuilder.(AbstractDocumentBuilder.java:134) 在 org.hibernate.search.engine.DocumentBuilderIndexedEntity.(DocumentBuilderIndexedEntity.java:178) 在 org.hibernate.search.spi.SearchFactoryBuilder.initDocumentBuilders(SearchFactoryBuilder.java:375) 在 org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:262) 在 org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:144) 在 org.hibernate.search.event.FullTextIndexEventListener.initialize(FullTextIndexEventListener.java:151) 在 org.hibernate.event.EventListeners$1.processListener(EventListeners.java:198) 在 org.hibernate.event.EventListeners.processListeners(EventListeners.java:181) 在 org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:194) ... 41 更多

如何在 Hibernate Search (Lucene) 索引中存储字节数组?

【问题讨论】:

    标签: java lucene indexing bytearray hibernate-search


    【解决方案1】:

    您需要field bridge

    例如:

    @Field(index = Index.NO, store = Store.YES)
    @FieldBridge(impl = MyFieldBridge.class)
    private byte[] file;
    
    
    //The file bridge
    public class MyFieldBridge implements StringBridge {
    
        @Override
        public String objectToString(final Object object) {
    
            byte[] file = (byte[]) object;
    
            return MagicFileUtil.getTextContent(file)
        }
    }
    

    【讨论】:

    • @Mat Banik:不,MagicFileUtil 是您必须自己编写的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多