使用Hibernate Search / Lucene标记云?

影人

我们的Web应用程序具有一个产品类别数据库,其中不包含n个产品。每个产品可以具有0个或更多与之关联的标签。所有这些对象都使用休眠搜索(JPA)进行了索引。我们正在尝试使用这些标签构建标签云,以使其更容易查看最受欢迎的标签。我们的代码看起来像这样...

FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);

        SearchFactory searchFactory = fullTextEntityManager.getSearchFactory();
        IndexReader indexReader = searchFactory.getIndexReaderAccessor().open(ProductBean.class);
        TermStats[] termStats = null;
        int numResults = 500;
        String field = "tags.name";

        try {
            termStats = org.apache.lucene.misc.HighFreqTerms.getHighFreqTerms(indexReader, numResults, field,
                    new org.apache.lucene.misc.HighFreqTerms.DocFreqComparator());
        } finally {
            searchFactory.getIndexReaderAccessor().close(indexReader);
        }

此代码可以按预期工作,并为我们提供了TermStats对象数组,这些对象为我们提供了构建标签云所需的评分信息。但是,现在我们希望按类别构建标签云。也就是说,我们希望能够根据特定产品所属的类别来过滤结果。但是,由于IndexReader似乎无法允许我们附加任何类型的过滤器。

有没有人做过类似的事情?是否有更好的方法使用Hibernate Search构建标签云?

最高

我认为您可以尝试使用lucene方面(https://lucene.apache.org/core/4_0_0/facet/org/apache/lucene/facet/doc-files/userguide.html

它们使您可以添加某种“分组依据”并依靠搜索结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有枚举字段的Hibernate Search / Lucene范围查询不返回任何结果

如何在Hibernate Search / Lucene中禁用默认评分/增强功能?

使用Hibernate Search自动完成

如何将Hibernate Search(Lucene)与分页和ACL结合使用

未指定hibernate.search.lucene_version:使用LUCENE_CURRENT

如何使用Hibernate Lucene Search进行不区分大小写的挪威字符(Æ,Ø和Å)排序?

Hibernate Search 5.0数值Lucene查询HSEARCH000233问题

Hibernate Search的用法,何时使用以及为什么

如何在Hibernate Search中正确使用@ContainedIn批注?

Hibernate Search直接计数,而不是使用Lucene和Elasticsearch进行常规查询

使用Lucene和Azure Search .NET SDK进行模糊搜索

将最新的Hibernate Search与Lucene 4混合

使用多个关键字进行Hibernate Search的索引搜索

Hibernate Search查询类

集合上的Hibernate Search(Lucene)过滤器

使用投影可以提高Hibernate Search索引的构建性能吗?

插入后,Hibernate Search不会重新索引lucene索引

使用Zend_Search_Lucene_Search_QueryParser的highlightMatches函数时发生异常

如何使用Hibernate Lucene Search访问实体中外键的排序字段名称?

如果字符串中有“ =”,则Hibernate Search(Lucene)返回空结果

如何在 Hibernate Lucene Search 中添加多个限制?

使用 Hibernate Search 时“过滤查询不支持排序”

无法使用 Hibernate Search 搜索子实体

Hibernate Search:如何正确使用通配符?

使用 Hibernate Search 时由于 lucene 锁导致 Spring Boot 集成测试失败

将 EntityGraph 与 Hibernate Search ORM 结合使用

Hibernate Search:将 Lucene 索引持久化到数据库中

带有 Lucene 荧光笔和同义词列表的 Hibernate Search 6

Hibernate envers + hibernate-search :通过 Lucene/Elasticsearhc 索引读取审计信息