如何在数据库中为iphone应用程序实现搜索系统

时间:2011-03-02 00:41:30

标签: iphone sql database search

这是一个非常广泛的问题,但我希望能够推动正确的方向(技术和方法)。

好的,我有一个iphone应用程序(我正在开发),它通过http请求与Web服务(c#)一起使用。 Web服务连接到底层数据库,根据请求提取必要的数据并将其反馈给应用程序。

现在,我需要在应用程序中实现一个搜索系统。用户搜索一些单词,我需要提供最相关的结果。必须在数据库中的不同表上执行搜索。可以在多个列中搜索每个表。例如,在搜索人员表时,我需要搜索名字,姓氏,公司和其他字段。其他表格还有其他重要的列。

我有很多问题,我甚至不知道从哪里开始。

如何使我的SQL查询进行搜索,但仍然足够快。我是否需要以某种方式制作一些带有索引内容的额外表格? 我应该如何在结果中添加相关因子,以便最终只过滤最相关的结果?例如,如果用户搜索史密斯,可能会有一个名为史密斯甚至是公司的人。它们应该在描述中可以包含史密斯的任何其他内容之前显示。

我知道这个问题有点含糊不清,但如果有人愿意,我可以解释一下。

谢谢

2 个答案:

答案 0 :(得分:2)

这取决于您在服务器上使用的语言/ rdbms。您可以查看各种数据库搜索解决方案,例如Sphinx,它将为您完成所有索引并提供简单的搜索API。例如,Sphinx允许您确定列的优先级,定义字符映射(ß->sä->a)等。

答案 1 :(得分:1)

最后我决定使用Lucene。这是一个很棒的技术,即使我在开始时有一些疑问,在阅读了名为“Lucene in Action”的书的3/4后,我很清楚它拥有我需要的一切(以及更多)。

我知道它不是一个功能齐全的搜索系统(需要所有元素),而只是一个处理搜索系统核心的库。将它与我的应用程序/ webservice /数据库集成需要一些工作。我会告诉你它是怎么回事:))

感谢您的投入!