sphinx安装
相关命令及步骤
创建主索引:
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all
创建增量索引:
1. 创建测试数据表以及数据
2. 修改配置文件
主索引源:sql_query_pre
增量索引源:sql_query_pre sql_query sql_query_post
主索引:source path
增量索引:source path
3. 创建/更新主索引
4. 创建/更新增量索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf delta
重启索引进程
/usr/local/coreseek/bin/searchd --stop
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf
索引合并
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --merge main delta --rotate
csft.conf配置文件
source src1
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM documents WHERE id=$id
}
index test1
{
source = src1
path = /usr/local/coreseek/var/data/test1
docinfo = extern
mlock = 0
morphology = none
stopwords = /usr/local/coreseek/var/data/test1/stopwords.txt
wordforms = /usr/local/coreseek/var/data/test1/wordforms.txt
min_word_len = 1
charset_type = sbcs
html_strip = 0
}
source delta : src1
{
sql_query_pre = SET NAMES utf8
sql_query = SELECT \
id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents \
WHERE \
id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
sql_query_post = UPDATE sph_counter SET max_doc_id=(SELECT MAX(id) FROM documents) where counter_id=1
}
index delta : test1
{
source = delta
path = /usr/local/coreseek/var/data/test1
}
创建mysql测试数据表及数据
CREATE TABLE `documents` (`id` int(11) NOT NULL
auto_increment,`group_id` int(11) NOT NULL,`group_id2` int(11) NOT
NULL,`date_added` datetime NOT NULL,`title` varchar(255) NOT
NULL,`content` text NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB
AUTO_INCREMENT=5;
INSERT INTO `documents` VALUES ('1', '1',
'5', '2008-09-13 21:37:47', 'test one', 'this is my test document number
one. also checking search within phrases.');INSERT INTO `documents`
VALUES ('2', '1', '6', '2008-09-13 21:37:47', 'test two', 'this is my
test document number two');INSERT INTO `documents` VALUES ('3', '2',
'7', '2008-09-13 21:37:47', 'another doc', 'this is another
group');INSERT INTO `documents` VALUES ('4', '2', '8', '2008-09-13
21:37:47', 'doc number four', 'this is to test groups');
// 实现增量索引时使用的计数表
CREATE TABLE sph_counter( counter_id INTEGER PRIMARY KEY NOT NULL, max_doc_id INTEGER NOT NULL);
PHP使用
<?php
header("Content-type: text/html; charset=utf-8");
require_once('sphinxapi.php');
$s = new SphinxClient();
$s->setServer("127.0.0.1", 9312);
$s->setArrayResult(true);
$s->setMatchMode(SPH_MATCH_ALL);
$keyword = 'test';
$result = $s->Query($keyword, '*');
if ($result['total'] == 0) {
echo '无搜索结果';die;
}
// 获取结果id集
$ids = array();
foreach($result['matches'] as $key => $val)
{
$ids[] = $val['id'];
}
print_r($ids);
// 连接数据库
$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
$db = new PDO($dsn, 'root', '');
$sql = 'select * from documents where id in('.implode(',', $ids).')';
$result = $db->query($sql);
$result->setFetchMode(PDO::FETCH_ASSOC);
$data = $result->fetchAll();
// 搜索结果高亮显示
$rule = array(
"before_match" => "<font style='font-weight:bold;color:#f00'>",
"after_match" => "</font>"
);
foreach ($data as $key=>$val) {
$data[$key] = $s->BuildExcerpts($val, 'delta', $keyword, $rule);
}
print_r($data);
添加新分词
1. 复制unigram.txt文件为unigram_new.txt
2. 在unigram_new.txt中添加新词
3. 生成新的词典文件:/usr/local/mmseg3/bin/mmseg -u /usr/local/mmseg3/etc/unigram_new.txt
4. 替换原有的uni.lib文件
5. 重建索引 && 重启索引
sphinx安装的更多相关文章
- Linux Sphinx 安装与使用
一.什么是 Sphinx? Sphinx 是一个基于SQL的全文检索引擎,可以结合 MySQL,PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序 更容易实现专业化 ...
- sphinx 安装使用
一.linux(centos)下安装源码包 1.下载 wget http://sphinxsearch.com/files/sphinx-2.3.1-beta.tar.gz 2.安装 切换目录到 ...
- Sphinx安装配置应用
Sphinx 是由俄罗斯人Andrew Aksyonoff开发的一个全文搜索引擎.意图为其他应用提供高速.地空间占用.高结果相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成 ...
- sphinx安装记录 转
[转]sphinx服务器安装及配置详解 安装PHP sphinx扩展 1.架构:ip192.168.0.200 redhat5.4(64位)2.安装 #cd /usr/local/src #y ...
- ubuntu下 mysql5.6.4 +sphinx安装
安装mysql 5.6.4 下载源码 安装cmake sudo apt-get install cmake 进入mysql源码包: 创建mysql用户与用户组 groupadd mysql usera ...
- coreseek(sphinx)安装1(xml数据源配置和测试)
1.下载coreseek-3.2.14-32版本.网址:http://www.coreseek.cn/products-install/install_on_windows/ (有详细的安装说明) ...
- CoreSeek Sphinx 安装
1.centos Sphinx 先安装 yum install postgresql-libs yum install unixODBC CoreSeek 安装: http://www.coresee ...
- Sphinx安装流程及配合PHP使用经验
1.什么是Sphinx Sphinx是俄罗斯人Andrew Aksyonoff开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行. 全文检索式指以文档的全部文本信息作为检索对象的一种信息检 ...
- Sphinx 安装与使用
Sphinx 优点 高速索引(接近10M/S) 高速搜索(2-4G文本搜索耗时不到0.1秒) 高可用性(单CPU支持100GB文本,100M文档) 提供相关性排名.分布式搜索.文档摘要(高亮显示) S ...
- Sphinx 安装与使用(1)-- 安装Coreseek
Coreseek就是Sphinx的中文版 官方网站 http://www.coreseek.cn/ 一.安装 1.修改LANG 永久修改: vim /etc/locale.conf LANG=&quo ...
随机推荐
- 201521123098 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123117 《Java程序设计》第4周学习总结
1. 本周学习总结 Q1.1 尝试使用思维导图总结有关继承的知识点. Q1.2 使用常规方法总结其他上课内容. 答:控制可见性的4个访问修饰符private -- 仅对本类可见public -- 对所 ...
- 201521123057 《Java程序设计》第3周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
- ubuntu下chromium浏览器flash插件安装
ubuntu下chromium浏览器默认是不支持flash的,在新立德软件包中搜索flash得到的“Adobe Flash Player plugin installer”也没有什么卵用,因为装完以后 ...
- 201521123075 《Java程序设计》第10周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? fin ...
- 【翻译】基于web创建逼真的3D图形 | CSS技巧
个人翻译小站:http://www.zcfy.cc/article/creating-photorealistic-3d-graphics-on-the-web-css-tricks-4039.htm ...
- SSM整合开发
导入开发包 asm-3.2.0.RELEASE.jar asm-3.3.1.jar c3p0-0.9.jar cglib-2.2.2.jar com.springsource.net.sf.cglib ...
- 代码的完整性:打印1到最大的n位数
输入数字n,按顺序打印出从1到最大的n位十进制数. 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999. 全排列打印 public class Main { public sta ...
- Windows的文件权限 研究笔记
最近公司的一台设备中了病毒,杀了又出现,总是破坏机器上面运行的程序. 想着研究下文件权限,把文件设为只读,让病毒破坏不了即可. 于是开始了实验1: 首先建立一个txt文件,查看权限: 可以看到User ...
- stl 和并查集应用
抱歉这么久才写出一篇文章,最近进度有点慢.这么慢是有原因的,我在想如何改进能让大家看系列文章的时候更方便一些,现在这个问题有了答案,在以后的推送中,我将尽量把例题和相关知识点在同一天推出,其次在代码分 ...