【转】sphinx服务器安装及配置详解 安装PHP sphinx扩展

1、架构:ip192.168.0.200 redhat5.4(64位)
2、安装

   #cd /usr/local/src
   #yum -y install mysql-devel             #安装mysql头文件支持mysql
   #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
   #tar -xvzf sphinx-0.9.9.tar.gz
   #cd sphinx-0.9.9
   #./configure --prefix=/usr/local/sphinx --with-mysql --with-iconv --enable-id64
   #make
   #make install

3、配置

   #cd /usr/local/sphinx
   #cp etc/sphinx.conf.dist etc/sphinx.conf
   #vim etc/sphinx.conf                      #修改配置文件
   source goods_src
   {
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = ecshop
        sql_pass                                = ecshop
        sql_db                                  = ecshop
        sql_port                                = 3306
        sql_sock                                = /tmp/mysql.sock
        sql_query_pre                           = SET NAMES utf8
        sql_query_pre                           = SET SESSION query_cache_type=OFF
        sql_query                               = \
                SELECT goods_id,cat_id,goods_sn,goods_name,brand_id,provider_name,goods_number,goods_weight,market_price,shop_price,promote_price,promote_start_date,keywords \
                FROM ecs_goods
        sql_attr_multi          = uint gid from query; SELECT goods_id,cat_id FROM ecs_goods
        sql_attr_uint           = brand_id
        sql_attr_float          = market_price
        sql_attr_float          = shop_price
        sql_attr_float          = promote_price
        sql_attr_float          = goods_weight
        sql_attr_str2ordinal    = goods_sn
        sql_attr_str2ordinal    = goods_name
        sql_ranged_throttle     = 100
    }
    index goods
    {
        source                  = goods_src
        path                    = /usr/local/sphinx/var/data/goods
        docinfo                 = extern
        mlock                   = 1
        morphology              = none
        min_stemming_len        = 1
        min_word_len            = 1
        charset_type            = utf-8
        charset_table           = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
        ignore_chars            = U+00AD
        ngram_len               = 1
        html_strip              = 0

    }

    indexer
    {
        mem_limit               = 1024M               //建议256到1024之间
    }
    searchd
    {
        listen                  = 9312
        log                     = /usr/local/sphinx/var/log/searchd.log
        query_log               = /usr/local/sphinx/var/log/query.log
        read_timeout            = 5
        client_timeout          = 300
        max_children            = 30
        pid_file                = /usr/local/sphinx/var/log/searchd.pid
        max_matches             = 1000
        seamless_rotate         = 1
        preopen_indexes         = 0
        unlink_old              = 1
        mva_updates_pool        = 1M
        max_packet_size         = 8M
        max_filters             = 256
        max_filter_values       = 4096
    }

4、启动

   #/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all   #创建索引
   #/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf         #启动索引服务
   #crontab -e                                加入crontab五分钟重新索引
   */5 * * * */usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate
  

下面是安装PHP  sphinx扩展

1、安装

 1、先安装sphinxclient
   #cd /usr/local/src
   #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
   #tar xzvf sphinx-0.9.9.tar.gz
   #cd sphinx-0.9.9/api/libsphinxclient
   #vim sphinxclient.c                   
    找到
    void sock_close ( int sock );
    改为
    static void sock_close ( int sock );
   #./configure --prefix=/usr/local/sphinxclient
   #make
   #make install
 2、安装sphinx扩展
   #wget http://pecl.php.net/get/sphinx-1.0.4.tgz
   #tar xvzf sphinx-1.0.4.tgz
   #cd sphinx-1.0.4
   #/usr/local/php/bin/phpize
   #./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/sphinxclient
   #make
   #make install
   修改php.ini
   extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
   [sphinx]
   extension=sphinx.so

2、测试
   1、安装sphinx
      请参照文档http://linux008.blog.51cto.com/2837805/622088
   2、编写测试文件

    #vim sphinx.php
    <?php
     $s = new SphinxClient;
     setServer("localhost", 9312);
     $s->setMatchMode(SPH_MATCH_ANY);
     $s->setMaxQueryTime(3);
     $result = $s->query("demo");
     var_dump($result);
    ?>
    #/usr/local/php/bin/php sphinx.php   运行结果
    array(9) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(5) {
    [0]=>
    string(6) "cat_id"
    [1]=>
    string(13) "provider_name"
    [2]=>
    string(12) "goods_number"
    [3]=>
    string(18) "promote_start_date"
    [4]=>
    string(8) "keywords"
  }
  ["attrs"]=>
  array(8) {
    ["goods_sn"]=>
    string(1) "3"
    ["goods_name"]=>
    string(1) "3"
    ["brand_id"]=>
    string(1) "1"
    ["goods_weight"]=>
    string(1) "5"
    ["market_price"]=>
    string(1) "5"
    ["shop_price"]=>
    string(1) "5"
    ["promote_price"]=>
    string(1) "5"
    ["gid"]=>
    string(10) "1073741825"
  }
  ["total"]=>
  int(0)
  ["total_found"]=>
  int(0)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["demo"]=>
    array(2) {
      ["docs"]=>
      int(0)
      ["hits"]=>
      int(0)
    }
  }
}

原文地址:
sphinx服务器安装及配置详解:http://linux008.blog.51cto.com/2837805/622088

http://linux008.blog.51cto.com/2837805/622171

sphinx安装记录 转的更多相关文章

  1. Linux Sphinx 安装与使用

    一.什么是 Sphinx? Sphinx 是一个基于SQL的全文检索引擎,可以结合 MySQL,PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序 更容易实现专业化 ...

  2. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  3. 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用

    关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用   工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...

  4. sourceinsight安装记录

    sourceinsight安装记录 此文章为本人使用sourceinsight一个星期之后的相关设置步骤记录和经验记录,以备以后查验,网上的相关资料都也较为完善,但是对于新手还是有一定困难的,所以在这 ...

  5. openerp安装记录及postgresql数据库问题解决

    ubuntu-14.04下openerp安装记录1.安装PostgreSQL 数据库    a.安装         sudo apt-get install postgresql    安装后ubu ...

  6. Matlab安装记录 - LED Control Activex控件安装

    Matlab安装记录-LED Control Activex控件安装 2013-12-01  22:06:36 最近在研究Matlab GUI技术,准备用于制作上位机程序:在Matlab GUI的技术 ...

  7. Arch Linux 安装记录

    Arch Linux 安装记录 基本上参考wiki上的新手指南,使用arch 2014.6.1 iso安装 设置网络 有线网络 Arch Linux 默认开启DHCP. 静态ip 首先关闭DHCP:s ...

  8. 修改sphinx最大输出记录数

    修改sphinx最大输出记录数 归纳如下: Sphinx的查询默认最大记录数是:1000,而我们想更改这个数值.就需要更改三个地方. 1是更改sphinx.conf配置文件的:max_matches ...

  9. redis5.0.3单实例简单安装记录

    redis5.0.3单实例简单安装记录 日常需要测试使用,索性记录下来,免得临时又麻烦的找资料. yum -y install make gcc-c++ cmake bison-devel ncurs ...

随机推荐

  1. iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样

    // 上传多张图片 - (void)send { // 设置初始记录量为0 self.count = 0; self.upcount = 0; // 设置初始值为NO self.isUploadPic ...

  2. Project Serve 2013部署方法

    在线版Project2013部署手册 服务器环境要求 系统:windows server 2008r2.windows server2012x64 Sharepoint 2013 内存至少16GB,最 ...

  3. 100197C

    合并果子 每一次取最小的两个合并 答案加上这两个值 因为这是一颗二叉树,我们计算一条路的长度,可以看成从叶子节点逐渐合并,直到根 #include<iostream> #include&l ...

  4. 控件(选择类): Selector, ComboBox

    1.Selector(基类) 的示例Controls/SelectionControl/SelectorDemo.xaml <Page x:Class="Windows10.Contr ...

  5. Spring10种常见异常解决方法

    在程序员生涯当中,提到最多的应该就是SSH三大框架了.作为第一大框架的Spring框架,我们经常使用. 然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉. 一.找不到配置文件的异常 ...

  6. 「c++小学期」实验题目及代码

    面向对象编程的C++,和平时做题用的C++还是有差距的.实验的题目都是小题目,就都做一下吧.(没放代码的为要验收的 实验一 简单C++程序设计 1.  猜价格游戏 编写C++程序完成以下功能: (1) ...

  7. Html一天入门

    一.什么是HTML 1.html: HyperText Markup Language 超文本标记语言,是最基础的网页语言,而且都是由标签组成. 2.基本格式: <html> <he ...

  8. Python 从零学起(纯基础) 笔记 (二)

    Day02 自学笔记  1.  对于Python,一切事物都是对象,对象基于类创建,对象具有的功能去类里找 name = ‘Young’       -   对象 Li1 = [11,22,33]   ...

  9. Linux 传输文件

    不同的Linux之间copy文件通常有4种方法: ftp samba服务 sftp scp 我使用了scp在同网段的内网 ip之间传输,非常快.所以先介绍下scp的方法: scp 是 ssh管道下的c ...

  10. Leetcode Find the Duplicate Number

    最容易想到的思路是新开一个长度为n的全零list p[1~n].依次从nums里读出数据,假设读出的是4, 就将p[4]从零改成1.如果发现已经是1了,那么这个4就已经出现过了,所以他就是重复的那个数 ...