【问题标题】:Hibernate QueryBuilder how to mimic 'like' queryHibernate QueryBuilder如何模仿“喜欢”查询
【发布时间】:2013-03-11 17:33:12
【问题描述】:

我现在正在学习这个 API。我有一些代码如下,但它完全匹配而不是“喜欢”。因此,当我有一个字符串JMeter 并且我使用Meter 时,它不会将它带回搜索结果中,但它应该。非常感谢任何帮助

SearchManager searchManager = Search.getSearchManager(listingIndex);

 QueryBuilder qb = searchManager.buildQueryBuilderForClass(ListingIndexEntry.class).get();

Query q = qb.keyword().onField("title").matching(title).createQuery();

谢谢

卡提克

【问题讨论】:

  • 你用的是什么Hibernate版本?

标签: hibernate hibernate-search query-builder sql-like


【解决方案1】:

如果您使用的是休眠搜索,那么我认为您正在寻找通配符查询。

查看有关它的文档there 第 5.1.2.3 节

所以你的代码会变成:

Query q = qb.keyword().wildcard().onField("title").matching("*"+title).createQuery();

注意文档中指定的性能,以通配符开头不是很好。

【讨论】:

  • 我试过这个 (q = qb.keyword().wildcard().onField("title").matching("JMete*").createQuery();) 但现在它甚至没有在 JMeter 上返回结果!有什么我做错了吗?
  • 通配符查询不会将分析器应用于匹配项。因此,假设您将需要使用“jmete*”的术语小写另见docs.jboss.org/hibernate/stable/search/reference/en-US/…
猜你喜欢
  • 2014-03-30
  • 2012-12-23
  • 2012-09-18
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多