用PHP构建自定义搜索引擎

http://tech.ddvip.com   2007年09月12日    社区交流

内容摘要:虽然 Google 及其系列产品几乎无所不能,但是 Web 形式的强大搜索引擎并不能很好地适用于每个站点。如果站点内容已被高度专业化或已明确分类,那就需要使用 Sphinx 和 PHP 来创建一个优化的本地搜索系统。

  Inventory 表

  Inventory 表是汽车零件的典范列表。零件 —— 例如螺钉或灯泡 —— 可能用于每辆汽车和多个部件中,但是零件只在 Inventory 表中显示一次。Inventory 表中的每行包含:

  使用了惟一的 32 位整数 serialno 标识行。

  字母数字零件号(此零件号惟一并且可以用作主键。但是,由于它可以包含字母数字字符,因此它不适于与 Sphinx 结合使用,Sphinx 要求索引的每条记录都有一个惟一的 32 位整型键)。

  文本描述。

  价格。

  Inventory 表的规范如清单 3 中所示:

  清单 3. Inventory 表

CREATE TABLE Inventory (
 id int(10) unsigned NOT NULL auto_increment,
 partno varchar(32) NOT NULL,
 description varchar(256) NOT NULL,
 price float unsigned NOT NULL default '0',
 PRIMARY KEY (id),
 UNIQUE KEY partno USING BTREE (partno)
) ENGINE=InnoDB;

  零件的(部分)列表可能如下面所示:

INSERT INTO `Inventory`
 (`id`, `partno`, `description`, `price`)
VALUES
 (1,'WIN408','Portal window',423),
 (2,'ACC711','Jack kit',110),
 (3,'ACC43','Rear-view mirror',55),
 (4,'ACC5409','Cigarette lighter',20),
 (5,'WIN958','Windshield, front',500),
 (6,'765432','Bolt',0.1),
 (7,'ENG001','Entire engine',10000),
 (8,'ENG088','Cylinder head',55),
 (9,'ENG976','Large cylinder head',65);

来源:ibm    作者:Martin Streicher    责编:豆豆技术应用

正在加载评论...