【问题标题】:Lucene.NET (strings fuzzy matching)Lucene.NET(字符串模糊匹配)
【发布时间】:2010-03-31 14:22:08
【问题描述】:

谁能给我一个例子,说明如何使用 Lucene.NET(或使用 Lucene 的 Java 版本,或任何其他具有 Lucene 端口的语言)对两个字符串进行模糊匹配。

【问题讨论】:

    标签: c# lucene lucene.net


    【解决方案1】:

    您能否更具体地说明一下模糊匹配的含义?

    Lucene 使用波浪号 (~) 运算符和通配符 (* & ?) 提供模糊查询 See here

    如果您想使用 Levenshtein、Jaro-Winkler 等方法比较 2 个字符串的字符串距离,最好使用单独的库,例如 SimMetrics。 我在我的生产站点中使用 Simmetrics,它运行良好。

    SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); //compare string 1, string 2 
    double sim = ls.GetSimilarity(string_1, string_2); 
    if(sim > [some value]) 
    { 
    //do something 
    } 
    

    【讨论】:

    • 谢谢您的回答先生。你是对的,我想使用 Levenshtein 算法比较两个字符串,你能给我举个例子,你是如何使用 SimMetrics 模糊匹配两个字符串的吗?
    • 其实很简单:1.在你的项目中添加对Simmetrics dll的引用2.在你想运行相似度的方法中,SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein( ); //比较字符串1,字符串2 double sim = js.GetSimilarity(string_1, string_2); if(sim > [some value]) { //做某事 }
    • 我看到的唯一问题是,您在从 lucene 获得结果后进行匹配。
    猜你喜欢
    • 2018-03-23
    • 2012-02-14
    • 2014-11-02
    • 2018-05-31
    • 2021-04-19
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多