建立像谷歌这样的数据库搜索引擎

时间:2010-12-14 10:34:33

标签: database search-engine

我是创建网站的新手。我正在创建一个电话目录搜索引擎。(使用PostgreSql,CGI脚本)。我的数据库有名称,电话号码,城市,州,地址。

到目前为止,我已经创建了一个像“google”这样的搜索字段,我可以在其中提供上述任何数据库条目和搜索。但是现在我想给出“name + city + ...”这样我可以最小化输出条目。

4 个答案:

答案 0 :(得分:2)

除了Silver Light's answer之外,您还可以使用PostgreSQL的multicolumn index来搜索单个索引中的任何或所有字段。

答案 1 :(得分:1)

你的意思是你要搜索所有字段吗?然后:

SELECT *
FROM table_name
WHERE 
Name LIKE '%query%'
OR Tel.No LIKE '%query%'
OR City LIKE '%query%'
OR State LIKE '%query%'
OR Address LIKE '%query%'

答案 2 :(得分:1)

我碰巧不知道您正在使用的编程语言,但我可以让您了解可能使用的算法。 实际上它很简单,包含许多(if-conditions)

喜欢下面的内容:

if(提供姓名)=>带来匹配的结果并将它们存储在Set1中 如果(提供城市)=>在Set1中过滤结果,只获得匹配的结果并将它们存储在S2中 if(提供地址)=>在S2中过滤结果并获得匹配的结果并将它们存储在S3 ...等等。

通过这种方式,您可以获取整套电话记录并一次又一次地对其进行过滤,直到您将其完全过滤为止,无论用户输入什么都会给他带来一些结果

我的意思是,如果您输入一个字段,您将获得大量结果,如果您输入两个字段,您将得到较少的结果,因为结果将被过滤两次,如果他输入三个字段,结果将被过滤三次,依此类推...

简而言之......只需使用过滤 抱歉,答案很长

答案 3 :(得分:0)

您可以创建一个函数,在检查用户已执行搜索查询的字段后,可以动态创建WHERE子句。

相关问题