配置文件

#
# Minimal Sphinx configuration sample (clean, simple, functional)
# source post
{
type = mysql sql_host = 192.168.33.90
sql_user = root
sql_pass = root
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_sock = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
sql_query = \
SELECT * from post sql_query_info = SELECT * FROM post WHERE id=$id
} index post
{
source = post
path = /usr/local/coreseek/var/data/post charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/mmseg/etc/
} indexer
{
mem_limit = 32M
} searchd
{
port = 9312
log = /usr/local/coreseek/var/log/searchd.log
query_log = /usr/local/coreseek/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/coreseek/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}

数据库数据

/*
Navicat MySQL Data Transfer Source Server : 33.90
Source Server Version : 50548
Source Host : 192.168.33.90:3306
Source Database : test Target Server Type : MYSQL
Target Server Version : 50548
File Encoding : 65001 Date: 2016-11-25 22:52:55
*/ SET FOREIGN_KEY_CHECKS=0; -- ----------------------------
-- Table structure for `post`
-- ----------------------------
DROP TABLE IF EXISTS `post`;
CREATE TABLE `post` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT NULL,
`content` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of post
-- ----------------------------
INSERT INTO `post` VALUES ('1', 'linux1', 'linux11');
INSERT INTO `post` VALUES ('2', 'php1', 'php11');
INSERT INTO `post` VALUES ('3', 'php1', 'php222');
INSERT INTO `post` VALUES ('4', 'php3', 'php333');
INSERT INTO `post` VALUES ('5', 'php5', 'php333');
INSERT INTO `post` VALUES ('8', '兄弟连', '格兰仕的减肥了开始的减肥了时间发');
INSERT INTO `post` VALUES ('7', 'linux is very good', ' linux is aaaaaaa连');
INSERT INTO `post` VALUES ('9', '时间', '收到减肥老兄弟');
INSERT INTO `post` VALUES ('10', '二位二位二时间', 'lamp兄弟连');

php代码

<?php
header("Content-type:text/html;charset=utf-8");
ini_set("display_errors",1);
error_reporting(E_ALL);
$keyword = $_GET['key'];
//实例化Sphinx对象
$sphinx=new SphinxClient(); //连接sphinx服务器
$sphinx->SetServer("192.168.33.90",9312);
//拆词
//SPH_MATCH_ALL 和 SPH_MATCH_ANY 的区别:
//搜索“LAMP兄弟连”,ALL的结果:完整包含“LAMP兄弟连”才能被搜出来,
//单纯包含“LAMP”或单纯包含“兄弟连”的搜索不出来,没有拆词的功能。
//ANY则可以搜索出来拆开后的词的结果。此处使用ANY
$sphinx->SetMatchMode(SPH_MATCH_ANY);
//通过query方法搜索,“*”表示在所有的索引中搜索,相当于命令行里面的“./indexer --all”
$result=$sphinx->query("$keyword","*");
//打印搜索的结果
// echo "<pre>";
// print_r($result);
// echo "</pre>"; //上面打印的结果中,数组的 [matches]循环便利,下标就是搜索到的文档的主键Id
//使用PHP中的 array_keys()函数即可拿到下标,即:要查找的文档的主键
//print_r(array_keys($result['matches']));
//结果如下:Array([0]=>1) //使用implode或者 join用逗号把查询出来的主键连接起来:
$ids = join(',',array_keys($result['matches']));
//echo $ids; //6,7 /*连接数据库的操作*/
$p1 = mysql_connect("192.168.33.90","root","root");
mysql_select_db("test");
mysql_query("set names utf8");
$sql="select * from post where id in ($ids)";
$rst=mysql_query($sql); $opts=array(
"before_match"=>"<font color='red'>",
"after_match"=>"</font>",
);
while($row=mysql_fetch_assoc($rst)){ //下面是高亮显示所需,具体可以查手册
$final=$sphinx->buildExcerpts($row,"post",$keyword,$opts); echo "标题:".$final['1']."<br>";
echo $final[2].'<hr>';
} ?>

效果图片:

coreseek 中文搜索和高亮的更多相关文章

  1. coreseek中文搜索

    coreseek的安装和使用 准备软件包 coreseek-3.2.14.tar.gz 其他汁源 coreseek中文索引-示例文件.zip sphinx配置文件详解.txt 1.安装组件 yum - ...

  2. Linux下PHP+MySQL+CoreSeek中文检索引擎配置

    说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装co ...

  3. CoreSeek中文检索引擎

    目的:安装coreseek中文检索引擎,配置MySQL数据库访问接口,使用PHP程序实现中文检索. CoreSeek官方网站: http://www.coreseek.cn/ http://www.c ...

  4. sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux)

    sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux)     众所周知,在MYSQL数据库中,如果你在百万级别数据库中使用 like 的话那你一定在那骂娘,coreseek是一个 ...

  5. 在 Angular 中实现搜索关键字高亮

    在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...

  6. Raneto部署知识库平台&支持中文搜索

    目录 环境 更新软件包 部署 Raneto 知识库平台 安装 Node 环境 安装 node 管理工具 查看 node 列表 安装需要的Node版本 使用 淘宝NPM源 git 使用代理设置,大陆地区 ...

  7. Raneto中文搜索支持

    背景 因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用. 官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我 ...

  8. 从零搭建 ES 搜索服务(五)搜索结果高亮

    一.前言 在实际使用中搜索结果中的关键词前端通常会以特殊形式展示,比如标记为红色使人一目了然.我们可以通过 ES 提供的高亮功能实现此效果. 二.代码实现 前文查询是通过一个继承 Elasticsea ...

  9. Solr系列六:solr搜索详解优化查询结果(分面搜索、搜索结果高亮、查询建议、折叠展开结果、结果分组、其他搜索特性介绍)

    一.分面搜索 1. 什么是分面搜索? 分面搜索:在搜索结果的基础上进行按指定维度的统计,以展示搜索结果的另一面信息.类似于SQL语句的group by 分面搜索的示例: http://localhos ...

随机推荐

  1. 74 partprobe-磁盘管理

    partprobe命令用于重读分区表,当出现删除文件后,出现仍然占用空间.可以partprobe在不重启的情况下重读分区. 语法 partprobe (选项) (参数) 选项 -d:不更新内核: -s ...

  2. git的配置

    git的配置: Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量. 这些环境变量,决定了 Git 在各个环节的具体工作方式和行为.这些变量可以存放在以下三个不 ...

  3. eclipse中如何远程java debug配置

    1.Window中修改startup.bat文件,在顶部添加如下: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE - ...

  4. html-css控制背景图全屏拉伸不重复显示

    在HTML中,当我们设置背景图,只能采用是否重叠.居中.重叠方向这几个选项 CSS3中设置 body { background:#3d71b8 url(../back_main.png); backg ...

  5. 数据库开发基础-SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)

    控制数据库的服务: 方法一: 1.Windows+R 打开运行  打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...

  6. 终于有SpringMvc与Struts2的对比啦

    目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较: 1. 核 心控 ...

  7. XML和JSON的对比

    简介: 客户端和服务器之间进行数据交互时,服务器往往会返回给客户端一定格式的数据.一般而言,服务器返回给客户端的数据为JSON或者XML文档格式的数据(文件下载除外).下面就针对于这两种数据格式分别介 ...

  8. web api Post 接收不到参数的问题

    前端: 注意两个点: 1. contentType: "application/json" 请求的格式是Json 2. 要用JSON.stringify(customer)序列化对 ...

  9. waf2控件名

    1,查询表格(queryGrid),编辑表格(editGrid) wafGrid 2,快速F7 wafPromptQuick 3,表格F7 wafPromptGrid 4,自定义F7 wafPromp ...

  10. 数据结构算法C语言实现(三十二)--- 9.1静态查找表

    一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...