[英]Add faceting over multivalued to application using Hibernate Search
我们在应用程序中使用了Hibernate Search。 我们使用刻面。 最近,我们发现了一个很大的限制。 在具有多个值的字段上进行切面操作无法在Hibernate Search中正常工作-如果文档中有多个值用于切面字段(例如,多个类别),则仅考虑其中一个值。
我目前可以想到两种解决方案:
在这两种解决方案中,我们将继续使用Hiberante Search维护索引并像以前一样进行查询(使用Hiberante Search),并在需要时运行其他bobo-browse或solr查询以进行构面(bobo-browse或solr将使用实物索引) “只读”方式)。 问题在于我们经常更新索引,并且希望在分面查询中获得真正的新鲜数据。 Bobo浏览器不会自动与Hiberante搜索集成,为了使搜索保持最新状态,我可能会遇到一些问题(例如https://groups.google.com/forum/?fromgroups=#!topic/bobo-浏览/ sn_Efc-YClU )。 该文档看起来有点凌乱,但尚未完成。 另一方面,Solr似乎是一件很重要的事情,只是为了使构面正常工作。 而且我仍然担心在更新/刷新索引时会遇到一些问题。
您对此事有经验吗? 有什么建议么?
作为Hibernate Search开发人员,我建议您加入我们,并帮助您实现所需的工具。
我们当中没有人真正需要多值分面,因此我们不确定是否选择哪种解决方案。 看来您确实有需求,这是探索替代方案并进行尝试的完美之选。
Hibernate Search已经依赖于许多Solr模块,尤其是由于大量优秀的分析器所致。 我相信我们可以找到一种方法来嵌入Solr的方面逻辑并将其很好地打包到我们一致的API中,而无需在服务器模式下实际启动Solr。
我想我们可以用Bobo-browse做同样的事情。 我希望Solr不添加其他依赖项,但是如果bobo-browse证明是一种出色的解决方案,为什么不呢?。但是您可以在这种选择上帮助我们。
你会得到什么交换?
需要什么?
https://community.jboss.org/wiki/ContributingToHibernateSearch
我还将Bobo Browse与Hibernate Search结合使用。 我也有定期更新和只读问题。 Bobo并不是最简单的库,我已经多次研究了与Hibernate Search集成的方法,但由于复杂性而放弃了。
我使用索引的定时重装以确保新鲜度,但这会产生大量垃圾。 随着时间的流逝,Lucene已经优化了重新打开索引读取器的过程,但是Bobo团队并没有真正致力于支持它。 https://linkedin.jira.com/browse/BOBO-31描述了此问题。
Hibernate Search基础结构应提供足够的灵活性来进行集成。 Zoie是与Bobo集成的类似于Hibernate Search的实时索引系统https://linkedin.jira.com/wiki/display/BOBO/Realtime+Faceting+with+Zoie也许它可以激发您的努力
这是对休眠搜索的多值构面计数问题的一种解决方案。
博客: http : //outbottle.com/hibernate-search-multivalue-facet-counts/
该博客包含一个Java类,可以重复使用该类来为单值和多值字段生成构面计数。
提供的解决方案基于此处提供的BitSet解决方案: http : //sujitpal.blogspot.ie/2007/04/lucene-search-within-search-with.html
该博客有一个Maven项目,该项目相当全面地演示了该解决方案。 该项目演示了使用hibernate-search faceting API进行过滤。
日期范围和一对多(单值)构面组以及多对多(多值)构面组的组合。
然后调用该解决方案以正确导出每个构面组的构面计数。
该解决方案可促进类似于以下jsFiddle仿真的结果: http : //goo.gl/y5C9UO (除了该仿真不会演示范围刻面之外)。
jsFiddle是较大的博客的一部分,该博客总体上探讨了构面搜索的概念: http : //outbottle.com/understanding-faceted-searching/ 。 如果您像我一样,并且发现整个方面搜索的概念相当混乱,那么这将有所帮助。
它可能不是世界上最好的解决方案,请随时反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.