使用lucene/java标记名称

Sap*_*Sap 2 java lucene tagging

我有我公司所有员工的名字(5000+).我想编写一个引擎,可以动态地在线文章(博客/维基/帮助文档)中找到名称,并用用户电子邮件标记"mailto"标签.

截至目前,我计划从文章中删除所有停用词,然后在lucene索引中搜索每个单词.但即使在这种情况下,我也会看到很多查询命中索引,例如,如果有一篇文章有​​2000个单词而且只有两个对人名的引用,那么很可能会有1000个lucene查询.

有没有办法减少这些查询?还是完全相同的另一种方式?提前致谢

Gen*_*sky 5

如果你只有5000个名字,我会把它们放在内存中的哈希表中而不是用Lucene打扰.您可以通过多种方式对它们进行哈希处理(例如,昵称,倒数第一或最后一次等),并且仍然具有相对较小的内存占用和非常高效的性能.

  • 好的,但是当您提出问题时,请提供足够的信息以获得适当的答案.通过退缩,你浪费了每个人的时间.你能描述一下你想要解决的实际问题吗? (2认同)
  • 好吧,假设你的公司在未来三年里做得很好并且规模增加了一倍(找到工作?)所以现在你有20万名员工.你的大部分人都来自泰国,有100个字母的姓氏和名字(合并).忽略密钥的大小,这意味着您的哈希表是200K*0.1K = 20M.这很容易适合任何合理的机器.然后,您可以在恒定时间内查找任何您想要的内容:无法获得更高效率. (2认同)