查看: 9509|回复: 0
打印 上一主题 下一主题

MySQL SphinxSE全文检索存储引擎简介

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-30 11:42:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
SphinxSE存储引擎用于连接到Sphinx全文检索系统的MySQL存储引擎。使用SphinxSE存储引擎的优点在于可以在MySQL中进行全文检索,检索的结果包含文档ID,权重等,由于是标准的关系数据,还可以进一步参与到更复杂的关系运算中,从而实现部分结构与与非结构化融合检索功能。SphinxSE存储引擎本身是一个非常轻量级的程序,并不提供检索功能,只是负责将检索通过网络发送给Sphinx检索服务器,并将检索结果封装为符合MySQL要求的关系数据。

安装SphinxSE存储引擎后首先需新建一张特殊的指定"ENGINE=SPHINX"检索表,如下:


CREATE TABLE ArticleFulltext (
    ID          INTEGER NOT NULL,
    Weight      INTEGER NOT NULL,
    Query      VARCHAR(3072) NOT NULL,
    ...
    INDEX (Query)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:3312/test";


其中表名和字段名可以是任意名称,但前三个属性的类型必须为INT、INT和VARCHAR。也可以拥有更多的属性,类型必须为INT或TIMESTAMP,名称必须与Sphinx配置文件对应,用于返回检索结果的更多信息。

创建该表后即可使用如下的SQL语句在MySQL中进行全文检索:


SELECT * FROM ArticleFulltext WHERE Query='全文检索条件';


查询返回结果即为全文检索的结果,包括文档ID、权重,若ArticleFulltext表包含了更多属性还包含命中结果的其它信息。

通过SQL联接操作可以很容易的实现融合检索,如:


SELECT ID, Title
FROM Article, ArticleFulltext
WHERE ArticleFulltext.ID = Article.ID and Query = '博客'
  AND PublishTime > '2007-03-01' AND ReferCount > 0
  ORDER BY Weight * 0.5 + ReferCount * 0.5;


上述SQL语句即可检索出2007年3月1日以来包含'博客'关键字且并引用过的文章,且按全文检索权重和引用数综合计算所得的权重进行排序。

由此可见,通过将全文检索系统提供的功能以存储引擎的形式嵌入到关系数据库MySQL中可以很方便的提供融合检索功能,虽然功能限制较多,也不失为一种聪明便捷的方式。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表