实时索引配置
coreseek 4.0测试版/Sphinx 1.x-beta支持了实时索引功能,其基本使用如下:RT实时索引手册:点击查看
实施索引配置:
#RT实时索引配置,详情请查看:http://www.coreseek.cn/products-install/rt-indexes/
#RT实时索引定义
index rtindex
{
type = rt
path = var/data/rtindex #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
charset_dictpath = etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
charset_type = zh_cn.utf-8
#RT实时索引字段配置,详情请查看:http://www.coreseek.cn/products-install/rt-indexes/
#字段设置顺序:field, uint, bigint, float, timestamp, string;顺序不可颠倒,否则产生混乱
#使用后,不可更改字段设置,除非删除所有索引文件重新建立,否则产生混乱
#文档编号字段
#id #系统自动处理
#全文索引字段
rt_field = title #全文索引字段
rt_field = content #全文索引字段
#属性字段
rt_attr_uint = groupid
rt_attr_bigint = biguid
rt_attr_float = score
rt_attr_timestamp = date_added
#存储内容字段
rt_attr_string = author #存储author的内容
#已设置全文索引,并需要同时存储内容的字段
rt_attr_string = title #同时存储title的内容
rt_attr_string = content #同时存储content的内容
#RT实时索引内存设置
rt_mem_limit = 512M
}
#searchd服务定义
searchd
{
listen = 9312
listen = localhost:9306:mysql41 #MySQL 协议支持与SphinxQL,详情请查看:http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html#sphinxql
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
pid_file = var/log/searchd_rtindex.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log = var/log/searchd_rtindex.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log = var/log/query_rtindex.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
binlog_path = var/log/rtindex/ #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
binlog_flush = 2
binlog_max_log_size = 16M
}
PHP测试程序:
<?php
// --------------------------------------------------------------------------
// File name : test_coreseek_rtindex.php
// Description : coreseek中文全文检索系统实时索引测试程序
// Requirement : PHP5 (http://www.php.net)
//
// Copyright(C), HonestQiao, 2011, All Rights Reserved.
//
// Author: HonestQiao (honestqiao@gmail.com)
//
// 最新使用文档,请查看:http://www.coreseek.cn/products/products-install/
//
// --------------------------------------------------------------------------
#连接到实时索引,使用MySQL41协议
$link = mysql_connect('localhost:9306') or die('connect bad');
if (!$link) {
echo mysql_errno() . ": " . mysql_error(). "\n";
exit;
}
else
{
echo "搜索服务:连接成功\n";
}
#查询id为1的文档
$id=1;
$query=mysql_query("SELECT * FROM rtindex WHERE id=$id");
if(mysql_errno())
{
echo mysql_errno() . ": " . mysql_error(). "\n";
exit;
}
else
{
echo "查询数据:查询成功\n";
}
if(mysql_num_rows($query)){
echo "查询数据:id为 $id 的数据存在\n";
while($row=mysql_fetch_array($query,MYSQL_ASSOC))
{
printf("标题:%s\n",$row['title']);
}
}
else
{
echo "新增数据:插入id为 $id 的数据\n";
$title = '愚人节最佳蛊惑爆料 谷歌300亿美元收购百度';
$content = '据国外媒体报道,谷歌将巨资收购百度......今天看来,“百度一下”已经成为3亿多中国网民的网络生存法则,而直到今天环视全球,真正能像中国一样,拥有自己独立搜索引擎的只有4个国家!......';
$groupid = 1;
$biguid = '12345678901234';
$score = 12.34;
$date_added = time();
$author = '知名编辑';
//主键id,需要自己设置,不会自动生成或者递增(AUTO_INCREMENT)
$content = mysql_escape_string($content);
mysql_query($sql="INSERT INTO rtindex(id,title,content,groupid,biguid,score,date_added,author) VALUES ( $id, '$title', '$content', $groupid,$biguid,$score,$date_added,'$author')");
if(mysql_errno())
{
echo mysql_errno() . ": " . mysql_error(). "\n";
echo $sql;
exit;
}
else
{
echo "新增数据:插入成功\n";
}
}
echo "\n全文检索:\n";
$query=mysql_query("SELECT * FROM rtindex WHERE MATCH('网络搜索')");
if(mysql_errno())
{
echo mysql_errno() . ": " . mysql_error(). "\n";
exit;
}
else
{
echo "搜索数据:搜索成功\n";
}
while($row=mysql_fetch_array($query,MYSQL_ASSOC))
{
print_r($row);
}
echo "搜索数据:状态获取\n";
$query=mysql_query("SHOW META");
if(mysql_errno())
{
echo mysql_errno() . ": " . mysql_error(). "\n";
exit;
}
else
{
echo "搜索数据:状态获取成功\n";
}
while($row=mysql_fetch_array($query,MYSQL_NUM))
{
printf("%s\t%s\n",$row[0],$row[1]);
}
上一篇: 数据源配置:odbc数据源
下一篇: SphinxSE基本使用