php+coreseek/sphinx之中文全文搜索平台搭建

article/2025/10/8 2:19:16

1.简介

          sphinx是一款高性能全文搜索软件包,由俄罗斯人开发,sphinx本身是可以支持中文搜索的,只是不支持中文分词,需要安装中文分词插件,coreseek就是一个打包了mmseg中文分词插件和sphinx源码的安装包。

2.安装

         coreseek下载地址:http://www.coreseek.cn/news/7/52/

         下载完成后解压到任意盘下,我这里解压到D盘,重命名为coreseek,目录:d:\coreseek\

3.配置

        在D:\coreseek\etc\下建立配置文件mysql.conf

source mysql{type                                        = mysql #数据库类型sql_host                                    = localhost #数据库的IP或者计算机名sql_user                                    = root    #连接数据库的帐号      sql_pass                                    = 123456   #连接数据库的密码            sql_db                                      = test   #数据库名称sql_port                                    = 3306   #数据库端口     sql_query_pre                         	   = SET NAMES utf8 #连接数据库后取数据之前执行的SQL语句sql_query                                   = SELECT goods_id,goods_name,goods_add_time FROM goods #执行的数据库语句sql_attr_uint                               = goods_id #sql_attr_uint和sql_attr_timestamp用于定义用于api过滤或者排序,写多行制定多列}index mysphinx{source                                     = mysql  #设置索引的源path                                       = D:/coreseek/var/data/mysql #设置索引存放路径charset_dictpath                   	  = D:/coreseek/etc/  <span style="font-size:12px;"><span style="font-size:12px;"><span style="font-family:华文细黑;">指明分词法读取词典文件的位置,当启用分词法时,为必填项。
在使用<span>LibMMSeg</span>作为分词 库时,需要确保词典文件<span>uni.lib</span>在指定的目录下</span></span></span>charset_type                               = zh_cn.utf-8  #设置字符集编码类型,与数据库的一致ngram_len               		          = 1 #使用一元字符切分模式,对单个中文字符进行索引ngram_chars             			  = U+3000..U+2FA1F, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z 
#表示要进行一元字符切分模式的字符}searchd{listen                                     = 9312 #监听的端口max_matches                                = 1000 #定义守护进程在内存中为每个索引所保持并返回给客户端的匹配数目的最大值pid_file                                   = D:/coreseek/var/log/searchd_mysql.pid #<span style="font-size:12px;"><span style="font-size:12px;"><span style="font-family:华文细黑;">pid</span><span style="font-family:华文细黑;">文件路径</span></span></span>log                                        = D:/coreseek/var/log/searchd_mysql.log #检索日志query_log                                  = D:/coreseek/var/log/query_mysql.log  #查询日志}
       注:以上代码copy到mysql.conf需要去掉注释
        生成索引:win下打开命令行,输入: d:\coreseek\bin\indexer --config d:\coreseek\etc\mysql.conf --all

正常运行结果如下:

     

      启动sphinx:d:\coreseek\bin\searchd --config d:\coreseek\etc\mysql.conf

正常运行结果如下

   

4.建立项目文件

在web目录下建立项目文件test,把d:\coreseek\api\ sphinxapi.php文件复制到test下,同时建立index.php文件,复制如下内容:

<?phpinclude 'sphinxapi.php';  // 加载Sphinx API$sc = new SphinxClient(); // 实例化Api$sc->setServer('localhost', 9312); // 设置服务端,第一个参数sphinx服务器地址,第二个sphinx监听端口$sc->SetMatchMode ( "SPH_MATCH_ANY" ); $sc->setLimits(0,1000);//  设置返回数据条数,默认20条$res = $sc->query('手机', 'mysql'); // 执行查询,第一个参数查询的关键字,第二个查询的索引名称,mysql索引名称(这个也是在配置文件中定义的),多个索引名称以,分开,也可以用*表示所有索引。var_dump($res);
?>

运行项目,OK。

 ...............................................

.................................................


ps:按照如上步骤整好,运行后一直没有结果,也不报错,反复检查文件、改变关键词还是没有结果,但是搜索英文有结果,弄了一上午都没解决问题,在我将要放弃时候,才发现因为项目下的index.php文件格式不是utf-8抓狂,调整文件格式,终于成功了!



http://chatgpt.dhexx.cn/article/96Kw15l0.shtml

相关文章

live555传输Speex音频详解一:Speex over RTP

1. RTP Speex 头部 RTP头部在[RFC3550]中定义。本文定义RTP头部中各字段的用法。 Payload Type (PT): 本格式的负责类型号。 Marker (M) bit: 此位被用来标志一段无声后有声的开始。打在 有声数据的第一个包上。 Speex支持声音检测&#xff0c;可以在无声时不 产生帧数据。所…

Speex的使用

Downloads Speex是一套主要针对语音的开源免费&#xff0c;无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外&#xff0c;相对于其它编解码器&#xff0c;Speex也很适合网络应用&#xff0c;在网络应用上有着自己…

网络测速服务器OpenSpeedTest

什么是 OpenSpeedTest &#xff1f; OpenSpeedTest 是一个跨平台的互联网速度测试应用程序。因此&#xff0c;您可以在不同操作系统中的各种网络浏览器中测试您的互联网速度&#xff0c;而无需安装任何其他应用程序或插件&#xff08;无需 Flash 或 Java&#xff09;。这意味着…

【SpeechX—统一高性能语音部署工具】SpeechX Custom ASR

(以下内容搬运自 PaddleSpeech) 在一些场景中&#xff0c;识别系统需要高精度的识别一些稀有词&#xff0c;例如导航软件中地名识别。而通过定制化识别可以满足这一需求。 相关demo: https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/custom_streaming_asr …

Speex for Android

http://blog.csdn.net/chenfeng0104/article/details/7088138 在Android开发中&#xff0c;需要录音并发送到对方设备上。这时问题来了&#xff0c;手机常会是GPRS、3G等方式上网&#xff0c;所以节省流量是非常关键的&#xff0c;使用Speex来压缩音频文件&#xff0c;可以将音…

IOS开发之SDWebImage

SDWebImage 前言&#xff1a;在我们日常的开发中我们通常会使用SDWebImage来实现UIImageView加载来自互联网的远程图片 官方介绍&#xff1a;一个具有缓存支持的异步映像下载程序 功能简介 一个添加了web图片加载和缓存管理的UIImageView分类一个异步图片下载器一个异步的内存…

SDWebImage-解码、压缩图像

一、简单介绍 研究了下SDWebImage的源码&#xff0c;借鉴了别人的一些资料&#xff0c;感觉逐渐的明白的一些原理&#xff0c;现在就来记录下。 在我们使用 UIImage 的时候&#xff0c;创建的图片通常不会直接加载到内存&#xff0c;而是在渲染的时候默认在主线程上再进行解码…

sdwebimage 加载webp图片

sdwebimage加载 webp / git 配置宏 - (void)setUpCusPhoto {_scrollView [UIScrollView new];_scrollView.frame self.view.bounds;[self.view addSubview:_scrollView];//webpUIImageView *view [[UIImageView alloc] init];view.frame CGRectMake(10, 100, 320, 200);NS…

SDWebImage 5.0简介

一、 SDWebImage原理简介 1.结构 (设计思路借鉴&#xff1a;提供多种接口&#xff0c;到底层调用到同一个方法&#xff0c;减少调用方对可选参数的传递) UIImageViewWebCache和UIButtonWebCache直接为表层的 UIKit框架提供接口, SDWebImageManger&#xff08;SDWebImageManager…

SDWebImage的主流程

SDWebImage提供了UIImageView的分类来实现从网络端下载数据并缓存到内存和磁盘。非常的流行,现在就主流程分析下. 主要的学习链接 &#xff1a;SDWebImage源码解读 - 简书 SDWebImage有如下特点&#xff1a; 提供了UIImageView和UIButton的分类。以支持加载网络图片并缓存…

SDWebImage的缓存策略

SDWebImage 相信对大多数开发者来说&#xff0c;都是一个不陌生的名字。它除了帮助我们读取网络图片&#xff0c;还会处理这些图片的缓存。它的缓存机制到底是什么样的呢&#xff0c;让我给跟大家唠叨唠叨&#xff0c;希望你能有收获。 基本结构 闲言少叙&#xff0c;咱们这就…

SDWebImage源码解析

这段时间研究了一下SDWebImage源码&#xff0c;因个人能力有限&#xff0c;如有不对的地方&#xff0c;请指出或留言&#xff0c;谢谢&#xff01; SDWebImage是一个开源的第三方库&#xff0c;它提供了UIImageView的一个分类&#xff0c;以支持从远程服务器下载并缓存图片的功…

【iOS】SDWebImage

文章目录 SDWebImage日常使用一些主要功能获取图片缓存 缓存机制独立的异步图像下载独立的异步图像缓存 图片加载全过程 源码分析架构图结构SDWebImageManager1. SDWebImageOptions2. SDWebImageManagerDelegate SDWebImageCompatSDWebImageCompat.hSDWebImageCompat.m sd_imag…

开源框架:SDWebImage

引言: SDWebImage是我搞iOS以来少数佩服的框架,膜拜一下作者.真的写的非常棒! 这套开源框架还是蛮重要的, 涉及到异步加载图片源和自动缓存. 我们如果能够熟练使用其API 就可以实现很多复杂的需求了. 作者依旧在更新,目前3.0 版本已经非常强大! 简化了更多的API接口.加强了…

iOS 第三方框架-SDWebImage解读

在iOS的图片加载框架中&#xff0c;SDWebImage可谓是占据大半壁江山。它支持从网络中下载且缓存图片&#xff0c;并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率&#xff0c;让我们更加专注于业务逻…

iOS——SDWebImage解读

前言 在iOS的图片加载框架中&#xff0c;SDWebImage占据了大半壁江山。它提供了UIImageView的一个分类&#xff0c;支持从网络中下载且缓存图片&#xff0c;并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开…

SDWebImage异步加载图片及缓存的管理与清理

一、SDWebImage介绍 1、在项目的开发过程中&#xff0c;我们经常会用到异步加载图片的功能&#xff0c;先从网络上异步下载图片&#xff0c;然后通过UIImageView显示在屏幕上。这是一个经常使用的功能&#xff0c;基本上所有的联网应用程序都要用到的功能&#xff0c;现在GitH…

iOS SDWebImage详细介绍

在iOS的图片加载框架中&#xff0c;SDWebImage使用频率非常高。它支持从网络中下载且缓存图片&#xff0c;并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率&#xff0c;让我们更加专注于业务逻辑实现…

JNA入门

1&#xff0c;什么是JNA&#xff1f; JNA全称Java Native Access&#xff0c;是一个建立在JNI技术之上的Java开源框架。 2&#xff0c;JNA有什么用&#xff1f; Java开发过程中&#xff0c;有时候会需要和C&#xff0c;C等交互&#xff0c;JNA相当于中间的适配器 3&#xf…

JNA —— Java调用C/C++动态库

工作所需&#xff0c;要使用Java调用c/c的动态库&#xff0c;实现Java程序使用动态库中的函数。 搜索了一番&#xff0c;常用的有JNI、JNA方法。 JNI&#xff08;Java Native Interface&#xff09; JNI定义了一种公用的语法&#xff0c;当Java和c/c都遵循这样的语法时就可以互…