【问题标题】:Best match search in JavaJava中的最佳匹配搜索
【发布时间】:2013-12-05 05:36:01
【问题描述】:

我有一个数据库表,其中存储了 Java 中所有异常的列表及其描述。 当用户输入异常名称时,它会检索相应的描述。我已经使用 Levenshtein 距离来匹配字符串,以防它们输入错误的字符串,但我想从输入字符串中消除字符串搜索中不相关的单词,例如“and”、“or”等,并提供快速搜索。

是否有现有的框架或 API 用于对字符串列表进行搜索?

有没有比 Levenshtein Distance 更好的方法来搜索字符串?

【问题讨论】:

  • 布鲁斯,你已经问过卢修斯福克斯了吗?
  • "and","or" 等词是停用词,要删除它们只需从谷歌获取这些词的文本文件,然后在您的异常名称输入中找到这些词并将它们删除。
  • @swapnil7 我需要更大的灵活性,我希望即使在用户输入错误的情况下搜索也能正常工作

标签: java search lucene search-engine


【解决方案1】:

其实你有点不对。诸如“and”和“or”之类的词与某些搜索引擎的工作方式极为相关;此外,如您所知,Levenshtein 距离是一种常用且有效的度量标准,可让您检查单词之间的相似性。此外,使用(可能是散列的)字典几乎和它一样快。此外,如前所述,如果您真的想过滤输入,请定义过滤规则,处理输入,然后然后使用结果字符串作为 Levenshtein 计算的基础。

另外,我有点想在此处发布 LMGTFY 链接,因为实际上阅读有关 Levenshtein 的 Wikipedia 文章会为您提供您可能需要的所有其他信息。我建议阅读有关所有距离指标和编辑距离的更多信息,对于以下链接中已经存在的覆盖范围,我没有太多可以添加的内容。

来源:http://en.wikipedia.org/wiki/Levenshtein_distancehttp://en.wikipedia.org/wiki/Edit_distancehttp://en.wikipedia.org/wiki/Wagner%E2%80%93Fischer_algorithm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2017-08-07
    • 2014-02-15
    • 2023-03-25
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多