【问题标题】:Hibernate Search with Lucene使用 Lucene 进行休眠搜索
【发布时间】:2014-08-31 05:38:27
【问题描述】:

我已经实现了一个自定义的ClassBridge,它实现了StringBridge

public class AClassBridge implements StringBridge {

public String objectToString(Object object) {
   ....
}

@Entity
.....
@ClassBridge(
            name="allTitles",
            index=Index.YES,
            store=Store.NO,
            impl=AClassBridge.class),
private class .... {
....

当我索引我的实体时,这个 Bridge 被调用,这是预期的,但是当我在 lucene 搜索查询中使用与这个 ClassBridge 关联的字段名称进行搜索时。

"bq.add(new 
BooleanClause(qb.keyword().onFields("allTitles").matching(searchText).createQuery(), 
BooleanClause.Occur.MUST));".

再次调用类Bridge

在实现org.hibernate.search.bridge.StringBridge 时这是正确的行为吗? 还是应该只在索引时调用 Bridge。

谢谢你,

【问题讨论】:

    标签: java hibernate lucene hibernate-search


    【解决方案1】:

    是的,这是预期的,matching() 方法希望您传递对象,而不是字符串,它会尝试使用定义的桥将参数转换为字符串。

    您可以使用 ignoreFieldBridge() 禁用它,这表明您要直接传递文本。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多