php使用coreseek进行中文分词搜索
方法一
使用coreseek源码自带testpack/api/test_coreseek.php代码,
进行稍微修改就可以使用了,只不过需要引入”spinxapi.php“类
方法二--制作php扩展
1.安装sphinx扩展
下载依赖 http://pecl.php.net/package/sphinx
解压并执行以下代码:
/usr/local/php7/bin/phpize
./configure --prefix=/usr/local/libsphinxclient
make && make install
2.安装sphinx扩展(这里需要根据php版本进行分别安装)
php5版本
wget http://pecl.php.net/get/sphinx-1.3.3.tgz
tar zxvf sphinx-1.3..tgz
cd sphinx-1.3.
./configure
--with-php-config=/usr/local/php/bin/php-config
--with-sphinx=/usr/local/libsphinxclient
上面有可能会报错:
php_sphinx_client_handlers.read_property = php_sphinx_client_read_property; ^
make: *** [sphinx.lo] Error
这个报错,修改 sphinx.c 第105行为:
retval = std_hnd->read_property(object, member, type TSRMLS_CC, NULL);
然后编译即可通过
php7版本
下载地址:
http://git.php.net/?p=pecl/search_engine/sphinx.git;a=snapshot;h=339e123acb0ce7beb2d9d4f9094d6f8bcf15fb54;sf=tgz ---可能下载下来为index.html文件,那就下载到本地然后rz上去。 接下来接着安装: 这里现在的版本为:sphinx-339e123.tar.gz
tar -zxf sphinx-339e123.tar.gz
cd sphinx-339e123
./configure
--prefix=/usr/local/sphinxextend
--with-php-config=/usr/local/php-fpm/bin/php-config
--with-sphinx=/usr/local/libsphinxclient/ make && make install
以上两个版本的步骤执行完成后,找到php.ini,在里面添加extension=spninx.so
然后使用php-m 或者看下phpinfo();
能看到sphinx即可。
注:执行php脚本之前要先启动sphinx服务,在shpinx安装目录的bin目录下执行./searchd 启动sphinx服务
例子:
$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( '祖国', "*" ); $ids = '';
foreach ($res['matches'] as $key => $val) {
$ids .= $val['id'].',';
}
$ids = rtrim($ids,','); $conn = mysqli_connect("localhost","root","root","post");
mysqli_query($conn,"set names utf8");
$sql = "select * from post_article where id in($ids)";
$res = mysqli_query($conn,$sql);
$list = array();
while($row = mysqli_fetch_assoc($res)){ $list[] = $row; } mysqli_free_result($res); mysqli_close($conn); foreach($list as $v){ echo $v['title'].'<br/>'.$v['content'].'<hr>'; }
php使用coreseek进行中文分词搜索的更多相关文章
- Sphinx + Coreseek 实现中文分词搜索
Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Goo ...
- ElasticSearch 中文分词搜索环境搭建
ElasticSearch 是强大的搜索工具,并且是ELK套件的重要组成部分 好记性不如乱笔头,这次是在windows环境下搭建es中文分词搜索测试环境,步骤如下 1.安装jdk1.8,配置好环境变量 ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...
- Centos下Sphinx中文分词编译安装测试---CoreSeek
要支持中文分词,还需要下载Coreseek,可以去官方搜索下载,这里我用的4.1 百度云下载地址: https://pan.baidu.com/s/1slNIyHf tar -zxvf co ...
- [转]Sphinx+Mysql+中文分词安装-实现中文全文搜索
From : http://blog.csdn.net/lgm252008/article/details/5373436 1.什么是SphinxSphinx 是一个在GPLv2 下发布的一个全文检索 ...
- window环境下,php+sphinx+coreseek实现简单的中文全文搜索
就以我个人理解来说,sphinx其实是介于客户端和mysql之间的一个索引表,把数据库的没一条记录假设为文档,那么这个索引表其实保存的就是这条记录的关键词及其对应的文档id 1.sphinx的安装 下 ...
- PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))
PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a) robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...
- 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)
关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...
随机推荐
- 多线程shell脚本检测主机存活
局域网中分了很多网段,而IP地址使用情况也未知,前期也没有规划和记录,当新的主机需要使用固定IP的时候,能否第一时间知道哪个IP空闲就显得很重要了,如果一个一个去ping的话太浪费时间. 这里分享一个 ...
- JavaScript的定时器如何先触发一次再延时
var data3=0; (function count3(){ console.log("count3:",data3++); setTimeout(count3,1000); ...
- input框在浏览器上显示一个叉,去掉方法
/* 清除IE10及以上版本input的叉叉(X)和密码输入框的眼睛图标 */ input::-ms-clear { display: none; } input::-ms-reveal { disp ...
- CentOS 7 install Tensorflow-gpu
# install TensorFlow GPU on CentOS 7.0# https://www.server-world.info/en/note?os=CentOS_7&p=tens ...
- 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...
- 虚拟机中的linux系统文件突然全部变成只读的问题
当宿主系统和虚拟机的IO都比较繁忙时,虚拟机的IO请求得不到及时的响应.虚拟机Linux不知道自己运行在虚拟机里面,会认为是磁盘IO错误,为了保护磁盘数据会remount分区为只读. 这时候如果只是对 ...
- what is MAC address
MAC Address:media access control address A media access control address (MAC address) is a unique id ...
- 子线程更新UI界面的2种方法
一.一般我们都会在子线程完成一些耗时的操作. 1.Android中消息机制: 2.知识点: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队, ...
- note 8 字符串
字符串String 一个字符的序列 使用成对的单引号或双引号括起来 或者三引号""" 和 ''' 表示块注释 字符串运算 长度 len()函数 first_name = ...
- symfony 踩坑之旅 视频实操从第九章开始
1.annotation定义路由 @Route("/**",defaults={"name":"world"},requirements={ ...