如何减少hibernate搜索(lucene)中的结果集?

时间:2017-01-23 03:52:58

标签: java hibernate autocomplete lucene hibernate-search

我在数据库中有900万个产品,当用户开始在网站的搜索框中输入产品名称时,我正在尝试使用hibernate搜索来查找产品的建议。这是一个自动完成功能。我已经实现了Web服务,以便使用hibernate搜索从数据集中获取可能的解决方案。

数据集有2个字段

  1. 产品名称
  2. 网址链接
  3. 我的sql中存储的数据。我正在使用org.hibernate.search.jpa.FullTextQuery进行搜索。

    结果问题:

    1. 结果数量过多。当我搜索“intel core”时,我得到了18K +结果。
    2. 它会导致查询响应方面的性能问题。对于上面的搜索,花了2秒钟。
    3. 有没有办法减少我的数据集上的搜索结果,以获得更好的查询响应时间?

1 个答案:

答案 0 :(得分:1)

使用setMaxResults()

Doc在这里:https://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/Query.html#setMaxResults(int)

您可能需要调整查询/数据以获取返回的“最相关”记录。