【问题标题】:Implement "Did you mean?" with Core Data实施“您的意思是?”与核心数据
【发布时间】:2011-12-13 16:24:13
【问题描述】:

我正在开发一个 iOS 应用程序。我有一个包含很多公司名称的 Core Data 数据库。

当用户插入一个不存在的公司名称时,我想显示“相似”的公司名称。例如,如果用户输入“Aple”,我想显示“Did you mean Apple?”。

我知道查找与模式近似(而不是完全)匹配的字符串的技术称为近似字符串匹配,或者通俗地说,模糊字符串搜索

理论上,有很多算法,或多或少是有效的:Levenshtein 距离计算算法等等。

但在实践中,是否有人已经实现了类似的东西,可以轻松与核心数据一起使用?

【问题讨论】:

    标签: iphone objective-c ios core-data string-search


    【解决方案1】:

    我找到了解决方案。使用 GitHub 上提供的这个 NSString 的类别:NSString-DamerauLevenshtein

    【讨论】:

      【解决方案2】:

      试试 Soundex,我相信这是 SQLite 核心功能集的一部分,如果那是您的底层数据存储的话。

      【讨论】:

      • Soundex 仅适用于英语,大多数欧洲语言尝试双变音位。但我认为 SQLite 不会支持这一点,因此您可能必须事先计算该值并对其进行搜索。
      • Soundex 仅在构建 SQLite 时使用 SQLITE_SOUNDEX 编译时选项时可用。如果我没记错的话,iOS Sqlite 没有 Soundex(无论如何都不容易与 Core Data 一起使用)...
      猜你喜欢
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多