当前位置: 首页 > news >正文

搜索引擎php系统程序,php搜索引擎

搜索引擎是个庞大的东西,我们只讨论小规模应用。今天给大家介绍是Sphinx

自带中文分词的sphinx http://www.coreseek.cn

官方安装步奏及参考手册 http://www.coreseek.cn/products-install/#doc_cn

本文在centos 6.3上安装调试

一、安装

1、wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz

2、tar xzvf coreseek-4.1-beta.tar.gz

3、cd coreseek-4.1-beta

4、提前安装操作系统基础开发库及mysql依赖库以支持mysql数据源和xml数据源

yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

5、安装mmseg

a、cd mmseg-3.2.14

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

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

d、make & make install

e、cd ..

6、安装coreseek

a、cd csft-4.1

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

c、 ./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

d、 make && make install

e、 cd ..

7、测试

a、 cd testpack

b、 cat var/test/test.xml #此时应该正确显示中文

c、 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml

d、 /usr/local/coreseek/bin/indexer -c etc/csft.conf --all

e、 /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索

二、在php中使用

1、建立数据源,文档中已经有很多方法,我这里测试一种xmlpipe2的数据源

cd /usr/local/coreseek/etc

cp /home/ylx/tmp/coreseek-4.1-beta/testpack/etc/csft.conf csft.conf 并且加上下面一段

01

#源定义

02

source xml

03

{

04

type                    = xmlpipe2

05

xmlpipe_command = /usr/bin/php /home/ylx/tmp/maketest.php #此处也可使用其他可执行程序输出xml数据 这里我就是用php生成的

06

07

}

08

09

#index定义

10

index xml

11

{

12

source            = xml            #对应的source名称

13

path            = /tmp/sphinx/ #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

14

docinfo            = extern

15

mlock            = 0

16

morphology        = none

17

min_word_len        = 1

18

html_strip                = 0

19

20

#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/

21

charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾

22

#charset_dictpath = etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...

23

charset_type        = zh_cn.utf-8

24

}

主要是修改xmlpipe_command 和 path两个值

2、新建maketest.php写入内容

01

02

//模拟查询数据库得到的数据

03

$list =array(

04

array(1,'百度阿斯顿林疯狂'),

05

array(2,'垃圾拉克丝京东方看见阿斯顿好'),

06

array(3,'阿斯蒂芬离开家老看见阿斯顿离开家需,吗'),

07

array(4,'休息休息离开家'),

08

);

09

set_time_limit(0);

10

ini_set('memory_limit','128M');

11

12

echo '<?xml version="1.0" encoding="utf-8"?>

13

14

15

16

17

18

19

';

20

foreach($list as $l){

21

echo '

22

23

'.$l[1].'

24

'.$l[0].'

25

26

';

27

}

28

echo '';

3、然后运行/usr/local/coreseek/bin/indexer xml 生成索引

4、启动守护进程  /usr/local/coreseek/bin/searchd

5、最后新建文件searchtest.php输入

01

02

include_once("/home/ylx/tmp/coreseek-4.1-beta/testpack/api/sphinxapi.php");//修改成你的路径

03

04

$s =new SphinxClient;

05

$s->setServer("localhost", 9312);

06

$s->setMatchMode(SPH_MATCH_ALL);

07

$s->SetArrayResult ( true );

08

$result =$s->query("吗","xml");

09

10

var_dump($result['matches']);//匹配到的结果

11

var_dump($result);

看上去有点复杂,今天也只是简单的介绍了下,需要的时候可以详细去了解下

相关文章:

  • matlab中计算容差是什么,matlab
  • php 第几周的起止日期,PHP 获取某年第几周的开始日期和结束日期的实例
  • matlab 数学符号输入,matlab输入数学符号
  • matlab怎么求解非线性方程组,请教,如何利用Matlab求解复杂的非线性方程组
  • php自定义函数变量,php自定义函数之变量作用域
  • python 判断文件类型,利用Python获取文件类型
  • php将ip写入文件,php – 允许仅从1个IP地址访问所有文件,并将所有其他文件重定向到其他文件...
  • oracle中blob的表导出,把表中的blob字段导出,并且用一个唯一名称来命名导出的文件。...
  • linux zip压缩排除目录,Linux系统zip压缩命令详细参数,附文件排除选项的正确用法...
  • linux 内核版本 4.4,Linux Kernel 4.4 正式发布下载
  • linux内核找不到sata分区表,分区表坏了,我的linux不见了
  • amd支持的Linux内核,Linux Kernel 4.7.2版本发布:改善对AMDGPU和ARM64的支持
  • linux grep 获取当天时间段,linux – 如何在一个时间范围内grep httpd error_log?
  • Linux内核i2c通信,绝对干货!基于Cortex-A9,分析Linux内核I2C架构
  • linux中文本文件过滤搜索,Linux命令(八)过滤文本 grep
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • [译]CSS 居中(Center)方法大合集
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 03Go 类型总结
  • Angular4 模板式表单用法以及验证
  • JavaScript 一些 DOM 的知识点
  • Laravel核心解读--Facades
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • python_bomb----数据类型总结
  • React的组件模式
  • SOFAMosn配置模型
  • Spring Cloud中负载均衡器概览
  • vagrant 添加本地 box 安装 laravel homestead
  • vue-loader 源码解析系列之 selector
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #1014 : Trie树
  • #WEB前端(HTML属性)
  • #Z0458. 树的中心2
  • $ git push -u origin master 推送到远程库出错
  • (003)SlickEdit Unity的补全
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (day6) 319. 灯泡开关
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .net/c# memcached 获取所有缓存键(keys)
  • .net网站发布-允许更新此预编译站点
  • .NET值类型变量“活”在哪?
  • .NET中统一的存储过程调用方法(收藏)
  • @EnableWebMvc介绍和使用详细demo
  • [Android]如何调试Native memory crash issue
  • [Angular] 笔记 20:NgContent
  • [AR]Vumark(下一代条形码)
  • [C#]使用PaddleInference图片旋转四种角度检测