ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

在Java / MySQL / Hibernate Search / Lucene环境中建议标签

2019-10-29 13:24:31  阅读:214  来源: 互联网

标签:hibernate-search tagging lucene java mysql


我正在开发一个基于Web的应用程序,该应用程序使我们的用户可以发布典型的博客/微博客/论坛类型的帖子,而我们遇到的一个问题是我们的用户并不是经常标记其内容.由于标签在我们的应用中非常重要,原因有几个,因此我们希望带动用户走向标签行为.

我们实施了哈希标记,这似乎起到了一定作用,并且我们还打算实施某种形式的游戏化来鼓励这种做法.

除了上述内容之外,我们还希望实现标签建议(基本上是StackOverflow所具有的内容).我们希望基于数据库中的现有标签来建议标签,并且当没有匹配的标签时,我们还想建议“突如其来”的标签可能使用某种tf-idf库或其他某种方法.我的问题有两个:

>从性能的角度来看,在用户键入时(即在击键时)建议这种标记是否可行?我认为这是您发布问题时StackOverflow所做的方式,我们正在寻找与此类似的内容.还是我们必须做一些后处理(即,在用户已经添加了内容之后,我们建议给他添加标签).
>是否有任何我们可以使用的工具/库可以给我们这些建议,也可以给我们提供建议,等等.甚至可能是同义词匹配.我们的数据当前存储在MySQL中,我们也使用Hibernate Search,因此它也存储在Lucene索引中(尽管我们目前不直接通过Hibernate Search与它们进行交互).我们愿意将这些数据存储在其他类型的数据源中,如果这样做会有所帮助.

解决方法:

>在每个击键上执行搜索确实是可行的,我们的应用程序当前使用的安装基数是数百万个客户端(尽管它们并非一次搜索所有).我可能会建议在尝试查找标签之前引入一个小的延迟(几秒钟左右),以减少服务器上的负载并防止标签列表过于频繁地更新.
> Hibernate Search(通过Lucene)应该能够为您提供所需的功能.搜索的关键是为您的字段设置适当的分析器,以便正确处理同义词和词干(例如,Lucene的EnglishAnalyzer,该词提供了停用词(例如“ the”和“ and”),并使用Porter词干分析器提供词干功能,可能还加上了用您的同义词初始化的SynonymFilter).

标签:hibernate-search,tagging,lucene,java,mysql
来源: https://codeday.me/bug/20191029/1960184.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有