Поиск в спящем байте [] в индексе - PullRequest
3 голосов
/ 17 октября 2011

У меня есть следующий конфиг в моем POJO:

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

Когда я запускаю свой контейнер приложений, я получаю следующее исключение:

Причина: 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)?

1 Ответ

4 голосов
/ 17 октября 2011

Вам понадобится полевой мост .

Например:

@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)
    }
}
...