在Infinispan中搜索Hibernate DSL关键字

时间:2014-04-29 08:27:36

标签: hibernate hibernate-search infinispan

我在Infinispan中使用Hibernate DSL进行搜索。

使用关键字查询时出现问题。

首先,这是映射类:

mapping
  .analyzerDef("fr",StandardTokenizerFactory.class)
    .filter(LowerCaseFilterFactory.class)
  .entity(DatatypeProperty.class).indexed().providedId()
    .property("rdfResource",ElementType.FIELD).field().analyze(Analyze.NO).store(Store.YES)
    .property("typeId",ElementType.FIELD).field().analyze(Analyze.NO)
    .property("xmlLang",ElementType.FIELD).field().analyze(Analyze.NO)
    .property("normVal", ElementType.FIELD).field().analyzer("fr");

我在缓存中添加了数据:

dpId====>> DP_1464688  rdfResource====>> HPO_TE_HP:0002099  NormVal====>> asthme xmlLang====>> fr
dpId====>> DP_2009562  rdfResource====>> MDR_PT_10003553  NormVal====>> asthme  xmlLang====>> fr
dpId====>> DP_914319   rdfResource====>> MED_T_T2  NormVal====>> asthme  xmlLang====>> fr
dpId====>> DP_8271402  rdfResource====>> MSH_M_0001885  NormVal====>> asthme  xmlLang====>> fr
dpId====>> DP_4432234  rdfResource====>> MSH_D_001249  NormVal====>> asthme  xmlLang====>> fr

搜索查询:

Query query1 = queryBuilder
                .bool()
                .must(queryBuilder.keyword().onField("normVal").matching("asthme").createQuery())
                .must(queryBuilder.keyword().onField("xmlLang").matching("fr").createQuery())
                .createQuery();
test = CSECore.searchManager.getQuery(query1, DatatypeProperty.class).list();

但搜索结果中没有人存在。

PS: MSH_D_001249 的属性 em> ,其内容为 “asthme bronchique” ; 如果我在缓存中添加此内容, MSH_D_001249 将显示在结果中。

有人有这个想法???

0 个答案:

没有答案