【问题标题】:Using Lucene for searching name with different combination使用 Lucene 搜索具有不同组合的名称
【发布时间】:2013-11-26 18:56:22
【问题描述】:

我们有一个基于 asp.net Web 的应用程序,它需要从大约 200 万个名字的巨大名字数据库中搜索一个名字。这也是我们要求实时完成的。我们搜索了一下,发现Lucene可以给一个快速的搜索。我们在事务中的名称可能有不同的顺序,也可能是完整名称的一部分,也可能拼写错误。用户可以选择提供所需的匹配准确度百分比。我们使用 SQL server 2008 R2 数据库。如果任何用户之前有类似要求的经验,将不胜感激您的反馈/解决方案。

问候

【问题讨论】:

  • 听起来你应该将你的名字数据库索引为一个 Lucene 字典并使用 SpellChecker。这使您可以设置匹配的准确性,还可以在您的情况下建议相似的单词或名称。

标签: sql search solr lucene


【解决方案1】:

对我来说,这看起来像是一个成熟的企业商业项目,其中包含您在此处给出的要求,而不是 Lucene 技术问题。是的,Lucene 可以处理。您需要编写具有重叠可变长度 char n-gram 索引的特殊标记器,并将这些 n-gram 索引到 lucene“文档”。在查询阶段,您需要通过将输入名称分解为 n-gram 字符并针对 Lucene 进行搜索来执行相同操作。

【讨论】:

  • 此要求是应用程序的一部分。我是 Lucene 的新手,有什么方法可以帮助我,或者有人开发了类似的解决方案。我尝试使用数据库,但花费的时间比预期的要多。由于搜索是在前台实时完成的,因此处理时间是一个需要考虑的因素。
  • 答案很长。首先,我想详细说明我上面的建议,然后我意识到我可以放一个链接到一篇文章,解释我上面的建议。这是链接:opensourceconnections.com/2013/08/21/name-search-in-solr
  • 这正是我在我的应用程序中想要的,但我怎样才能获得代码或解决方案。除此之外,我不确定它是否还检查拼写错误的名称,我们还可以提供所需的匹配百分比。 Arun 有没有办法获取编码/配置详细信息,我们非常感谢您的支持。
猜你喜欢
  • 2019-03-04
  • 1970-01-01
  • 2020-01-05
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多