首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iphone应用程序中搜索15万单词词典的最佳方法是什么?

在iphone应用程序中搜索15万单词词典的最佳方法是什么?
EN

Stack Overflow用户
提问于 2010-07-15 12:53:26
回答 1查看 271关注 0票数 1

我正在用法语开发一个简单的字典词应用程序,有15万个单词和定义。我在寻找最好的方法来做这件事。

首先,我使用了一个有15万字的sqlite。我使用LIKE命令搜索单词,但是它非常慢,例如:从单词‘%沃伊%’限制为‘0,50’的单词中选择*;搜索包含'avoi‘(如'avoir’或'savoir‘)之类的单词。我的表有单词列索引,但是LIKE不使用索引,所以它在3GS上的速度非常慢(2-5)。

在我使用fts3扩展命令ex :选择*从单词匹配的单词'avoi*‘限制0,50;更好的(0,1-0,15s)在3GS上,但它只是搜索的词,如'savoir’这样的‘沃伊’字不是在结果中。MATCH命令不适用于像“avoi”这样的语法

你对优化这个文本搜索有什么想法吗?

我有一个很好的iphone应用程序的例子: Dixel (Robert ),它使这种搜索速度非常快。对这个方法有什么想法吗?

谢谢你的回答。

EN

回答 1

Stack Overflow用户

发布于 2010-07-15 13:44:01

快速字典使用复杂的数据结构来限制蛮力搜索。有很多关于单词的数据可以快速地存储和搜索。

这种数据结构之一就是根据它们包含的字母之间的关系对单词进行排序。例如,您有一个表,其中列出了a后面跟着一个v的所有单词。然后,对于所有具有vo的单词,另一个。然后,搜索任意字符串avo就变成了合并具有顺序和顺序的表的问题。所以:

代码语言:javascript
复制
(all words in which `a` is followed by a `v`) AND (all words in which `v` followed by an `o`)

一旦你得到所有匹配的单词的表有必要的模式,你可以暴力它很快。

字典就像日期和时代,它们看起来很简单,因为我们习惯了它们,但在幕后,让它们在计算机上工作所需的代码却是看似复杂的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3255658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档