Andy's Blog » sphinx, sphinx mysql, mysql sphinx-for-chinese, sphinx-chinese mysql, sphinx和mysql索引那个好, account73w » Sphinx + MySQL 全文检索

Sphinx + MySQL 全文检索

Sphinx + MySQL 全文检索

Sphinx 官方网站:www.sphinxsearch.com

sphinx-for-chinese

http://code.google.com/p/sphinx-for-chinese/

这是一个sphinx的修改版本,目标是提供更好的中文支持。 目前的版本已经比稳定,在生产环境中也应用了一定的时间。 如要获取支持,请加入Google讨论组 http://groups.google.com/group/sphinx-for-chinese

Coreseek 简介

Coreseek是基于Sphinx的一款软件,对Sphinx做了一些改动,主要是中文切分词方面更合理一些

变更如下:

改进MMSeg切词策略,支持产品型号的切分
修正MMSeg切分结果不一致的问题
增加MMSeg的Python接口(Win32 Only)
修正了PySource的若干错误
为主流的Linux平台提供的预编译二进制包

官方网站:
http://www.coreseek.cn/

帮助手册pdf下载:
http://www.coreseek.cn/uploads/pdf/sphinx_doc_zhcn_0.9.pdf

1. Sphinx简介
1.1. 什么是全文检索
全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是文章的作者,也有可能是文章摘要或内容。

1.2. 介绍
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。

1.3. Sphinx的特性
高速索引 (在新款CPU上,近10 MB/秒);
高速搜索 (2-4G的文本量中平均查询速度不到0.1秒);
高可用性 (单CPU上最大可支持100 GB的文本,100M文档);
提供良好的相关性排名
支持分布式搜索;
提供文档摘要生成;
提供从MySQL内部的插件式存储引擎上搜索
supports boolean, phrase, and word proximity queries;
支持每个文档多个全文检索域(默认最大32 个);
支持每个文档多属性;
支持断词;
支持单字节编码与UTF-8编码;
supports English stemming, Russian stemming, and Soundex for morphology;
支持 MySQ(MyISAM和InnoDB 表都支持);
支持PostgreSQL.

Sphinx,它是一种开源和免费的搜索引擎,可以非常 快速地搜索文本。例如,在一个几乎有 300,000 行及五个索引列(每列包含大约 15 个单词)的活动数据库中,Sphinx 可以在 1/100 秒内得到 “这些单词中任何一个单词” 的搜索结果(在运行 Debian Linux® Sarge 的 2-GHz AMD Opteron 处理器、1 GB RAM 的计算机上)。

Sphinx 提供了大量功能,包括:

  • 它可以为能够表示为字符串的所有数据建立索引。
  • 它可以以各种方式为相同数据建立索引。对于多个索引,每个索引都针对特定目的而定制,您可以选择最适当的索引来 优化搜索结果。
  • 它可以把属性与每条索引数据关联起来。然后您可以使用一个或多个属性来进一步过滤搜索结果。
  • 它支持词法,因此搜索单词 “cats” 还会找到词根 “cat”。
  • 您可以在许多计算机中分发 Sphinx 索引,从而提供故障恢复功能。
  • 它可以创建任意长度的单词前缀索引和可变长度的中缀子字符串的索引。例如,一个零件号可以是 10 个字符宽。前缀索引将匹配位于字符串开头处的所有可能的子字符串。中缀索引将匹配在字符串内任意位置的子字符串。
  • 您可以在 MySQL V5 内将其作为存储引擎运行,降低使用其他守护程序的需求(通常被视为另一个故障点)。

您可以在 Sphinx 源代码附带的 README 文件中或通过在线资料找到完整的功能列表。Sphinx Web 站点还列出了已经部署了 Sphinx 的若干个项目。

Sphinx 是用 C++ 编写、用 GNU 编译器构建、支持 64 位支持平台,并在 Linux、UNIX®、Microsoft® Windows® 和 Mac OS X 上运行。构建 Sphinx 十分简单:下载并解压缩代码,然后运行

./configure && make && make  install

命令。

默认情况下,Sphinx 实用程序将被安装到 /usr/local/bin/ 中,并且所有 Sphinx 组件的配置文件都位于 /usr/local/etc/sphinx.conf 中。

Sphinx 有三个组件:索引生成器、搜索引擎和命令行 search 实用程序:

  • 索引生成器被称为索引器。它将查询数据库,为结果的每行中的每列建立索引,并且将每个索引条目绑 定到行的主键上。
  • 搜索引擎是名为 searchd 的守护程序。该守护程序将接收搜索词和其他参数,快速遍历一个或多个索引,并返回结果。如果找到匹配,searchd 将返回一个主键数组。对于这些键,应用程序可以针对相关数据库运行查询来查找包含匹配的完整记录。Searchd 将在端口 3312 上通过套接字连接与应用程序进行通信。
  • 便捷的 search 实用程序使您可以从命令行构造搜索而无需编写代码。如果 searchd 返回匹配,则 search 将查询数据库并显示匹配集中的行。search 实用程序对于调试 Sphinx 配置和执行临时搜索十分有用。

此外,Sphinx 的作者 Andrew Aksyonoff 和其他贡献者为 PHP、Perl、C/C++ 和其他编程语言提供了 API。

Sphinx 相关文章
用 php 构建自定义搜索引擎

来自张宴的 Sphinx 文档
下载 : Sphinx搜索引擎架构与使用文档(和MySQL结合) 2010-03-06 (1.24 MB, 已下载 451 次)

Incoming search terms:

Tags: mysql, Sphinx, 全文搜索, 全文检索

本文地址: http://www.21andy.com/new/20100306/1737.html

3 评论 to “PHP开源CMS之MODx”

  1. 小鱼 于 2010-03-06 23:44:12 发表:

    这玩意对中文支持不太好。貌似有个国内修改版支持中文。大网站很需要这个。

    Andy 于 2010-03-07 00:18:35 回复:

    呵,你只看标题不看内容的吗?

  2. 小鱼 于 2010-03-07 14:46:24 发表:

    哈哈。。。andy。被你猜中了。后来看了内容。不错。很顶你。这东西相当有用。