搜索引擎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);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值