iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >全文搜索Sphinx怎么实现
  • 711
分享到

全文搜索Sphinx怎么实现

2023-06-04 14:06:04 711人浏览 八月长安
摘要

本篇内容介绍了“全文搜索Sphinx怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Sphinx简介1.1.Sphinx是什么Sp

本篇内容介绍了“全文搜索Sphinx怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.Sphinx简介

1.1.Sphinx是什么

Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与sql数据库和脚本语言集成。当前系统内置MySQLpostgresql 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS 的原生支持)

1.2.Sphinx的特性

  • 高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);

  • 高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);

  • 可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可   处理100 M 文档);

  • 提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

  • 支持分布式搜索;

  • 支持短语搜索

  • 提供文档摘要生成

  • 可作为Mysql的存储引擎提供搜索服务;

  • 支持布尔、短语、词语相似度等多种检索模式;

  • 文档支持多个全文检索字段(最大不超过32个);

  • 文档支持多个额外的属性信息(例如:分组信息,时间戳等);

  • 支持断词;

1.3.Sphinx中文分词

中文的全文检索和英文等latin系列不一样,后者是根据空格等特殊字符来断词,而中文是根据语义来分词。目前大多数数据库尚未支持中文全文检索,如mysql。故,国内出现了一些Mysql的中文全文检索的插件,做的比较好的有hightman的中文分词。Sphinx如果需要对中文进行全文检索,也得需要一些插件来补充。其中我知道的插件有 coreseek 和 sfc 。

  • Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg 。并提供了多个系统的二进制发行版,其中有rpm,deb及windows下的二进制包。另外,coreseek也为sphinx贡献了以下事项:

    • GBK编码的数据源支持

    • 采用Chih-Hao Tsai MMSEG算法的中文分词器

    • 中文使用手册(这份中文手册对国内使用sphinx新手——特别是英语不太好的人来说,提供了极大的便利

  • sfc(sphinx-for-chinese)是由网友happy兄提供的另外一个中文分词插件。其中文词典采用的是xdict。据其介绍,经过测试,目前版本在索引速度上(linux 测试平台)基本上能够达到索引UTF-8英文的一半,即官方宣称速度的一半。(时间主要是消耗在分词上)。 现提供了与sphinx最新版(sphinx 0.9.10)同步的sphinx-for-chinese-0.9.10-dev-r2006.tar.gz 。此版本增加了sql_attr_string,经过本人的测试。其安装和配置都非常方便。happy兄在分词方面还有另外一个贡献——PHP-mmseg,这是php对中文分词的一个扩展库。

在此,对以上二位作者谨以最大的敬意

  • 此外,如果你对中文分词不感兴趣。或者说仅需要实现类似sql中like的功能,如: select * from product where prodName like ‘%手机%’。sphinx也不会让你失望,这个或许就是官网对中文的简单实现——直接对字索引。并且搜索速度还不错^_^ 。

本文会对以上三种中文应用进行测试,并以文档的方式记录下来,这也许正是本文档的重点。

2.安装配置实例

2.1在GNU/Linux/unix系统上安装

Sphinx在mysql上的应用有两种方式:
①、采用api调用,如使用PHP、java等的API函数或方法查询。优点是可不必对mysql重新编译,服务端进程“低耦合”,且程序可灵活、方便的调用;
缺点是如已有搜索程序的条件下,需修改部分程序。推荐程序员使用。
②、使用插件方式(sphinxSE)把sphinx编译成一个mysql插件并使用特定的sql语句进行检索。其特点是,在sql端方便组合,且能直接返回数据给客户端
不必二次查询(注),在程序上仅需要修改对应的sql,但这对使用框架开发的程序很不方便,比如使用了ORM。另外还需要对mysql进行重新编译,且需要mysql-5.1以上版本
支持插件存储。系统管理员可使用这种方式
二次查询注:到现在发布版本为止——sphinx-0.9.9,sphinx在检索到结果后只能返回记录的ID,而非要查的sql数据,故需要重新根据这些ID再次从数据库中查询,
正在开发的sphinx 0.9.10版本已可存储这些文本数据,作者曾试过,性能和存储上的效果都不佳,毕竟还没出正式版

本文采用的是第一种方式

在*nix系统下安装,首先需要以下一些软件支持

软件环境:

  • 操作系统Centos-5.2

  • 数据库:mysql-5.0.77-3.el5 mysql-devel(如果要使用sphinxSE插件存储请使用mysql-5.1以上版本)

  • 编译软件:GCc gcc-c++ autoconf automake

中文的全文检索和英文等latin系列不一样,后者是根据空格等特殊字符来断词,而中文是根据语义来分词。中文分词主要有2个插件

Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg ,是基于sphinx的基础上开发的。

sfcsphinx-for-chinese是由网友happy兄提供的另外一个中文分词插件。其中文词典采用的是xdict

本文主要介绍Coreseek的安装方法

四、  Coreseek(支持中文检索的sphinx)安装

因为coreseek需要autoconf 2.64以上版本,因此需要升级autoconf,不然会报错从Http://download.chinaunix.net/download.php?id=29328&ResourceID=648下载autoconf-2.64.tar.bz2,安装方法如下:

tar -jxvf autoconf-2.64.tar.bz2

cd autoconf-2.64

./configure

make

make install

新版本的coreseek将词典和sphinx源程序放在了一个包中,因此只需要下载coreseek包就可以了。

http://pan.baidu.com/s/1dEK4x3r

tar xzvf coreseek-3.2.14.tar.gz

cd mmseg-3.2.14

./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决

./configure --prefix=/usr/local/mmseg3

make && make install

cd ..

cd csft-3.2.14

sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决

./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

make && make install

cd ..

如果出现这种报错config.status: error: cannot find input file: src/Makefile.in,就在configure 之前执行如下命令
aclocal

libtoolize --forceautomake --add-missingautoconfautoheadermake clean

“全文搜索Sphinx怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 全文搜索Sphinx怎么实现

本文链接: https://www.lsjlt.com/news/238165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 全文搜索Sphinx怎么实现
    本篇内容介绍了“全文搜索Sphinx怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Sphinx简介1.1.Sphinx是什么Sp...
    99+
    2023-06-04
  • Sphinx 实现全文搜索的 PHP 应用指南
    引言:在现代的 Web 应用中,全文搜索功能已经成为了一个必备的特性。因为用户常常会通过输入关键词来搜索和匹配他们所需要的内容。为了提供高效和准确的搜索结果,我们需要一个强大的搜索引擎。而 Sphinx 作为一个开源的全文搜索引擎,它为 P...
    99+
    2023-10-21
    PHP 全文搜索 Sphinx
  • Sphinx PHP 实现全文搜索的中文分词与检索优化
    引言:随着互联网的发展和信息爆炸的时代,全文搜索引擎成为了人们进行信息检索的重要工具。传统的全文搜索引擎主要针对英文等西方语言进行优化,而对于中文这种特殊的语言来说,传统的全文搜索引擎存在一些问题。本文将介绍如何利用Sphinx PHP实现...
    99+
    2023-10-21
    Sphinx - A software library used for performing full-text se
  • Sphinx PHP 实现全文搜索的搜索历史记录与推荐功能
    引言:随着互联网的快速发展,全文搜索已经成为了许多网站和应用程序中必不可少的功能。Sphinx是一个功能强大的开源全文搜索引擎,它可以快速地搜索和检索大量的文本数据。本文将介绍如何使用Sphinx PHP来实现全文搜索的搜索历史记录与推荐功...
    99+
    2023-10-21
    PHP (编程语言) Sphinx (用于全文搜索)
  • PHPCMS开启全文搜索(sphinx)后搜索无效的解决方法
    我是按照官方提供的sphinx配置文件配置的,用的是centos系统,在终端执行时能够返回搜索内容,就是在phpcms程序中有问题经过一翻研究后,找到一个解决方法:程序版本:PHPCMS V9正式版utf-8把phpcm...
    99+
    2022-06-12
    PHPCMS sphinx 全文搜索
  • Sphinx PHP 实现邮件系统的全文搜索与过滤功能
    随着电子邮件的广泛应用,人们越来越关注快速检索与过滤邮件的效率。Sphinx是一款开源的全文搜索引擎,其高效的搜索速度与强大的过滤功能使其成为邮件系统的理想选择。本文将介绍如何使用Sphinx PHP实现邮件系统的全文搜索与过滤功能,并给出...
    99+
    2023-10-21
    邮件系统 - 指涉包括发送
  • JavaScript中怎么实现全文搜索
    这篇文章将为大家详细讲解有关JavaScript中怎么实现全文搜索,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。相关性对每一个搜索查询,我们很容易给每个文档...
    99+
    2022-10-19
  • sphinx结合scws对mysql实现全文检索
    下面讲讲关于sphinx结合scws对mysql实现全文检索,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完sphinx结合scws对mysql实现全文检索这篇文章你一定会有所受...
    99+
    2022-10-18
  • Sphinx 实现 PHP 项目的实时搜索效果
    一、安装 Sphinx要在 PHP 项目中实现实时搜索效果,首先需要安装 Sphinx。可以在 Sphinx 的官方网站(http://sphinxsearch.com/)上下载最新版本的 Sphinx,然后按照官方文档进行安装。二、创建 ...
    99+
    2023-10-21
    PHP Sphinx 实时搜索
  • SQL Server中怎么实现全文搜索功能
    这期内容当中小编将会给大家带来有关SQL Server中怎么实现全文搜索功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一,创建全文目录和唯一索引创建全文索引之前,必须...
    99+
    2022-10-18
  • Sphinx PHP 实现代码搜索的最佳实践方法
    简介:Sphinx是一个开源的全文搜索引擎,它提供了高效的搜索解决方案。PHP是一种流行的服务器端脚本语言,与Sphinx结合使用,可以实现强大的代码搜索功能。本文将介绍在PHP中实现Sphinx代码搜索的最佳实践方法,并提供具体的代码示例...
    99+
    2023-10-21
    PHP Sphinx 代码搜索
  • Sphinx PHP 实现音视频搜索的技巧和实践
    随着互联网的快速发展和用户对多媒体内容需求的增加,音视频搜索引擎的重要性也越来越凸显。Sphinx是一款开源的全文搜索引擎,它以其快速、高效和可扩展的特性而备受开发者的推崇。本文将介绍如何使用Sphinx PHP来实现音视频搜索,并给出具体...
    99+
    2023-10-21
    Sphinx (全文检索引擎) PHP (编程语言) 音视频搜索(功能需求)
  • Sphinx 分布式搜索的 PHP 实现方法解析
    引言:在当今互联网时代,搜索引擎已经成为人们获取信息的主要方式之一。为了提供更高效、更准确的搜索结果,一些大规模的网站或应用程序通常会使用分布式搜索引擎来处理搜索请求。Sphinx 是一种知名的分布式搜索引擎,具有良好的性能和扩展性。本文将...
    99+
    2023-10-21
    分布式 PHP Sphinx 方法解析
  • Sphinx 高可用搜索的 PHP 实现方法研究
    导语:Sphinx 是一个开源的全文搜索引擎,它提供了快速、准确和可扩展的搜索解决方案。在 PHP 网站中集成 Sphinx 可以实现高可用的搜索功能。本文将探讨 Sphinx 在 PHP 中的实现方法,并提供具体的代码示例。一、Sphin...
    99+
    2023-10-21
    高可用 PHP实现 Sphinx
  • PostgreSQL中如何实现全文搜索
    PostgreSQL中如何实现全文搜索,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CREATE TABLE auth...
    99+
    2022-10-18
  • VuePress使用Algolia实现全文搜索
    目录引言确认眼神申请授权实施部署调试爬取总结回顾引言 Algolia 为构建者提供构建世界级体验所需的搜索和推荐服务。Algolia 是一个数据库实时搜索服务,能够提供毫秒级的数据库...
    99+
    2022-11-13
  • Sphinx 实现 PHP 项目的模糊匹配搜索效果
    首先,我们需要在 PHP 项目中安装 Sphinx。可以使用 Composer 包管理工具来安装 Sphinx 的 PHP 包。在项目根目录下的 composer.json 文件中,添加 Sphinx 包的依赖:{ "requ...
    99+
    2023-10-21
    Sphinx PHP 项目 模糊匹配搜索
  • Sphinx PHP 实现音乐搜索功能的案例解析
    引言:随着互联网的发展,音乐资源的获取和分享变得非常便利。为了提升用户的音乐搜索体验,很多网站和应用程序都加入了专门的音乐搜索功能。本文将介绍如何使用Sphinx PHP实现音乐搜索功能,并提供具体的代码示例。什么是Sphinx PHP?S...
    99+
    2023-10-21
    PHP:一种服务器端脚本语言 音乐搜索:一种功能
  • Sphinx 实现 PHP 项目的快速搜索与缓存优化
    一、Sphinx 的安装与配置要使用 Sphinx,首先需要在服务器上进行安装并进行相关的配置。以下是安装 Sphinx 的步骤:下载 Sphinx:在 Sphinx 的官方网站(http://sphinxsearch.com/downlo...
    99+
    2023-10-21
    PHP 缓存优化 Sphinx
  • mysql+mybatis下全文搜索怎么用
    这篇文章给大家分享的是有关mysql+mybatis下全文搜索怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一步在你的需要全文搜索的列上点击 全文搜索full text类型索引,注意我的例子是该列是个lo...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作