类似的软件: Lucence
使用流程:
1 下载 coreseek coreseek-3.2.14-win32
2 使用sphinx为要搜索的数据【数据源-商品】 创建全文索引
2.1 制作一个配置文件 找到在 coreseek-3.2.14-win32\coreseek-3.2.14-win32\etc\csft_mysql.conf
复制一个模板 改名 为sphinx.conf
2.2修改配置文件
#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/
#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库
#为数据库中的表p40_goods表 为数据源
#源定义
source goods
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = php40
sql_port = 3306
sql_query_pre = SET NAMES utf8
#主查询:要为哪些数据建索引就使用一条SQL语句把这些数据取出来即可
#要求:第一个字段一定是ID
#现在这个SQL的意思是让SPHINX为所有商品的:goods_name,goods_decs,attr_value这三个字段创建全文索引
sql_query = SELECT a.id,a.goods_name,a.goods_desc,GROUP_CONCAT(b.attr_value) attr_value from p40_goods a LEFT JOIN p39_goods_attr b ON a.id=b.goods_id GROUP BY a.id
}
#一个数据源对应一个index
#定义索引文件
index goods
{
source = goods #对应的source名称
#生成的索引文件存放的目录\索引文件的名字, 最后的goods是指文件名叫goods 而不是目录
path = D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\var\data\goods
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#中文分词词库文件所在目录
charset_dictpath = D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\etc
charset_type = zh_cn.utf-8
}
#全局index定义
indexer
{
mem_limit = 128M
}
#searchd服务器的配置
searchd
{
listen = 9312
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
#配置一下 以下三个文件存放的绝对目录【目录中不要有中文】
pid_file = D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\var/log/searchd_mysql.pid
log = D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\var/log/searchd_mysql.log
query_log = D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\var/log/query_mysql.log
}
2.3使用sphinx为商品生成索引
使用bin/indexer.exe的命令
以管理员命令 运行CMD
D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\bin\indexer.exe -c D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\etc\sphinx.conf 配置的路径 goods 配置文件中所有名字
-----------------------------
安装启动sphinx服务器
使用bin/searchd.exe
D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\bin\searchd.exe -c D:\server\apache\htdocs\tp\tp40\coreseek-3.2.14-win32\etc\sphinx.conf --install
安装服务窗口找到SPHINX并启动
services.msc 启动
在项目中使用PHP代码查询sphinx
A 先复制sphinxapi文件到项目中根目录
例子:
//关键字搜索
public function key_search()
{
//搜索关键字
$key=I(‘get.key‘);
header(‘Content-Type:Text/html;charset=utf-8;‘);
//搜索sphinx
require(‘./sphinxapi.php‘);
$sph=new \SphinxClient();
$sph->SetServer(‘localhost‘,9312);
//第一个参数:要查的关键字
//第二个参数:sphinx中索引的名字默认是*,所有的索引
$ret=$sph->query($key,‘goods‘);
//提取出商品的ID
$ids=array_keys($ret[‘matches‘]);
$gModel=D(‘Goods‘);
$ret=$gModel->field(‘id,goods_name‘)->where(
‘id‘=>array(‘in‘,$ids),
)->select();
}
用法
1 创建配置文件建索引并启动服务器
2 把关键词发到sphinx服务器去搜索 会把搜索到的商品ID返回给php
3 php 再使用ID查询数据库取出详细信息