sphinx.conf中的配置:

 source indexLocation
{
type = mysql sql_host = 192.168.1.113
sql_user = root
sql_pass = redidai@@2013
sql_db = redidai
sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF sql_query = \
SELECT a.location_id as id,a.location_id,a.location_name as `location_name`,a.location_name as `name`,a.location_bname,a.attach_id,a.showstatus,a.is_del,a.status,b.area_name as city_name FROM `ts_rdd_location` a LEFT JOIN `ts_rdd_area` b ON a.city_id = b.area_id
#sql_attr_string = name
sql_attr_uint = status
#sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM `ts_rdd_location` WHERE location_id = $id
} index indexLocation
{
source = indexLocation
path = /var/lib/sphinx/test1
docinfo = extern
mlock = 0 #缓存数据内存锁定
morphology = none #形态学(对中文无效)
min_word_len = 2 #索引的词最小长度
charset_type = utf-8
min_prefix_len = 0 #最小前缀
html_strip = 1
ngram_len = 1 #对于非字母型数据的长度切割
ngram_chars = U+3000..U+2FA1F #则会对每个中文,英文字词进行分割,速度会慢 #字符表,注意:如使用这种方式,则sphinx会对中文进行单字切分,即进行字索引。
#若要使用中文分词,必须使用其他分词插件如 coreseek,sfc
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
} indexer
{
mem_limit = 32M
} searchd
{
listen = 9312
#listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
compat_sphinxql_magics = 0
#workers = threads # for RT to work
binlog_path = /var/lib/sphinx
}

php代码:

 <?php
class SearchAction extends AdministratorAction { public $sphinxClient = null; public function __construct() {
parent::__construct(); require_once SITE_PATH . '/sphinxapi.php'; if ($this->sphinxClient == null) {
$this->sphinxClient = new SphinxClient ();
} $this->sphinxClient->SetServer('192.168.0.0', 9312);
$this->sphinxClient->open();
} public function QLocation($params = array()) {
$searchWord = ''; if (isset($params['keyword'])) {
$searchWord = $params['keyword'];
} $result = $this->suggestHandle($this->sphinxClient, $searchWord); $nodeResult = array(); if ($result['total'] > 0) {
$matches = array(); foreach($result['matches'] as $mvale) {
$matches[] = $mvale['id'];
} $matches_id = implode(",", $matches); $locationModel = D('RddLocation', 'admin');
$list = $locationModel->getLocationListByID($matches_id);
$nodeResult = $list;
} print_r($nodeResult);exit; return $nodeResult;
} public function suggestHandle($spx, $searchWord = ''){
//$spx->SetSortMode(SPH_SORT_EXTENDED, "@weight DESC, larea DESC, is_recommend DESC, like_count DESC");
$spx->SetSortMode(SPH_SORT_EXTENDED, "@weight DESC");
$spx->ResetFilters();
//$cityId = filter_input(INPUT_GET, 'area', FILTER_SANITIZE_STRING);
//$spx->SetFilter('showstatus', array('Y'));
//$spx->SetFilter('is_del', array('0'));
$spx->SetFilter('status', array(1));
//$result = $spx->Query($searchWord, 'plan14_location,delta_plan14_location');
$spx->SetArrayResult(true);
$result = $spx->Query($searchWord, 'indexLocation');
//var_dump($spx);
return $result;
} }

调用:

$searchAction = new SearchAction();
$list = $searchAction->QLocation(array('keyword' => $name));

sphinx的简单实例的更多相关文章

  1. Hibernate(二)__简单实例入门

    首先我们进一步理解什么是对象关系映射模型? 它将对数据库中数据的处理转化为对对象的处理.如下图所示: 入门简单实例: hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中 ...

  2. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  3. 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...

  4. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  5. 【转】Android Https服务器端和客户端简单实例

    转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...

  6. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  7. vue路由的简单实例

    vue2.0 和 vue1.0 路由的语法还是有点稍微的差别,下面介绍一下vue-router 2的简单实例: <!DOCTYPE html> <html lang="en ...

  8. Flume概述和简单实例

    Flume概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方( ...

  9. jsoup解析HTML及简单实例

    jsoup 中文参考文献    http://www.open-open.com/jsoup/ 本文将利用jsoup,简单实现网络抓取的功能,并给出一个小实例,该实例效果为:获取作者本人在博客园写的所 ...

随机推荐

  1. windows官方多语言方案

    编写 Win32 多语言用户界面应用程序 Windows 2000 针对全球市场制定了新的增强支持标准,提供了许多国际化功能,例如完全支持 Unicode.预设支持数百种语言以及用于从右向左语言的镜像 ...

  2. POJ 3436 ACM Computer Factory (拆点+输出解)

    [题意]每台计算机由P个零件组成,工厂里有n台机器,每台机器针对P个零件有不同的输入输出规格,现在给出每台机器每小时的产量,问如何建立流水线(连接各机器)使得每小时生产的计算机最多. 网络流的建图真的 ...

  3. VC++6.0环境下调试c语言代码的方法和步骤_附图

    1.C语言程序四步开发步骤 (1)编辑.可以用任何一种编辑软件将在纸上编写好的C语言程序输入计算机,并将C语言源程序文件*.c以纯文本文件形式保存在计算机的磁盘上(不能设置字体.字号等). (2)编译 ...

  4. (九)学习CSS之margin属性

    参考: 所有浏览器都支持 margin 属性. 注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit". 定义和用法 margi ...

  5. Linux(ubuntu)下安装JDK、Tomcat

    一.安装jdk 1)首先以root用户登录进去,在根目录下建立opt的目录,我们将下载的东西都放到该目录下去. 2)下载j2sdk ,如jdk-6u31-linux-i586.bin 下载地址如下ht ...

  6. 使用C语言实现二维,三维绘图算法(3)-简单的二维分形

    使用C语言实现二维,三维绘图算法(3)-简单的二维分形 ---- 引言---- 每次使用OpenGL或DirectX写三维程序的时候, 都有一种隔靴搔痒的感觉, 对于内部的三维算法的实现不甚了解. 其 ...

  7. python 网络编程(五)---DNS域名系统

    1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...

  8. 清空具有外键约束的表时报ERROR 1701(42000)的解决办法

    ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`furion`.`tbl_fr ...

  9. matlab 函数说明—ordfilt2

    今天看harris角点实现的源码,在某一个版本中看到了这个函数,不是很理解,doc ordfilt2之后还是不清楚,终于在matlab论坛上搞清楚了ordfilt2的功能.   中文理解函数名就是顺序 ...

  10. 50道经典的JAVA编程题 (11-15)

    50道经典的JAVA编程题 (11-15),新年的第一天,继续啦...\(^o^)/~,这50道题都跨年了啊...哈哈 [程序11] TestTN.java 题目:有1.2.3.4个数字,能组成多少个 ...