php搜索引擎
来源:互联网 发布:红旗linux为什么解散了 编辑:程序博客网 时间:2024/05/18 17:00
搜索引擎是个庞大的东西,我们只讨论小规模应用。今天给大家介绍是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-devel5、安装mmsega、cd mmseg-3.2.14b、./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决c、./configure --prefix=/usr/local/mmseg3d、make & make installe、cd ..6、安装coreseeka、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 installe、 cd ..7、测试
a、 cd testpackb、 cat var/test/test.xml #此时应该正确显示中文c、 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xmld、 /usr/local/coreseek/bin/indexer -c etc/csft.conf --alle、 /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
<?php
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
<sphinx:docset>
14
15
<sphinx:schema>
16
<sphinx:field name=
"title"
/>
17
<sphinx:attr name=
"id"
type=
"int"
bits=
"16"
default
=
"1"
/>
18
</sphinx:schema>
19
';
20
foreach
(
$list
as
$l
){
21
echo
'
22
<sphinx:document id=
"'.$l[0].'"
>
23
<title>
'.$l[1].'
</title>
24
<id>
'.$l[0].'
</id>
25
</sphinx:document>
26
';
27
}
28
echo
'</sphinx:docset>'
;
3、然后运行/usr/local/coreseek/bin/indexer xml 生成索引
4、启动守护进程 /usr/local/coreseek/bin/searchd
5、最后新建文件searchtest.php输入
01
<?php
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
- php搜索引擎
- PHP搜索引擎
- PHP 的搜索引擎技术
- php搜索引擎原理
- 简单PHP搜索引擎源代码
- PHP获取搜索引擎关键词
- php简易搜索引擎
- 搜索引擎技术核心揭密(PHP)
- 搜索引擎技术核心揭密(PHP)
- 搜索引擎技术核心揭密(PHP)
- PHP搜索引擎技术核心揭密
- 搜索引擎技术核心揭密(PHP)
- 搜索引擎技术核心揭密(PHP)
- 用 PHP 构建自定义搜索引擎
- PHP搜索引擎开发纪实[1]
- PHP搜索引擎开发纪实[2]
- 用 PHP 构建自定义搜索引擎
- PHP搜索引擎技术核心揭密
- 用于将错误信息输出到txt文件
- 王立平-NGUI
- 关于JBPM总结
- Net序列化-JSON序列化
- RED5的API介紹1-ApplicationAdapter
- php搜索引擎
- google play上传apk大小受阻问题
- layoutSubviews的调用时机
- UVa 474 - Heads / Tails Probability
- 关于oracle redo log buffer 你所不知道的东西
- MPLS VPN学习笔记
- C# Enum,Int,String的互相转换
- HDU4421 Bit Magic 【2-sat】
- ZOJ 3733 Skycity 数学