PHP - Sphinx安装与使用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyansai/article/details/81814371

Sphinx搜索引擎

安装

1、安装mysql的开发包

sudo apt-get install mysql-client mysql-server mysql-common
sudo apt-get install libmysqld-dev libmysqlclient-dev

2、安装sphinx

  • 下载sphinx 下载地址
  • 安装命令./configure --prefix=/usr/local/sphinx --with-mysql & make & make install
  • 生成xdict文件/usr/local/sphinx/bin/mkdict xdict_1.1.txt xdict
  • 复制xdict到sphinx根目录cp xdict /usr/local/sphinx/etc/
  • 生成sphinx配置文件cp /usr/local/sphinx/etc/sphinx.conf.dist /usr/local/sphinx/etc/sphinx.conf

3、配置sphinx

  • 示例如下:
source basic
{
    type                = mysql
    sql_host            = 192.168.1.10
    sql_user            = user
    sql_pass            = password
    sql_db              = db_name
    sql_port            = 3306
    sql_ranged_throttle = 0
}
source ad_src : basic {
    sql_query_pre       = SET NAMES utf8
    sql_query           = SELECT id,material
    sql_attr_uint       = id
    sql_field_string    = material
}
index ad
{
    source             = ad_src
    path               = /usr/local/sphinx/var/data/ad
    chinese_dictionary = /usr/local/sphinx/etc/xdict
    docinfo            = extern
    dict               = keywords
    mlock              = 0
    morphology         = none
    min_word_len       = 1
    min_prefix_len     = 0
    min_infix_len      = 1
    ngram_len          = 1
    html_strip         = 0
}

indexer
{
    mem_limit       = 128M
}

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
    persistent_connections_limit = 30
    pid_file                     = /usr/local/sphinx/var/log/searchd.pid
    seamless_rotate              = 1
    preopen_indexes              = 1
    unlink_old                   = 1
    mva_updates_pool             = 1M
    max_packet_size              = 8M
    max_filters                  = 256
    max_filter_values            = 4096
    max_batch_queries            = 32
    workers                      = threads
}
  • 简单的解释如下:

1、source basic是定义一个数据库基本信息,用来给其他的sql查询源做基。

2、ad_src是一个继承于basic的查询源,就拥有了mysql的基础信息,不用再设置了

3、index ad是索引名,主要用来配置索引路径与中文路径

4、indexer与searchd是根据配置文件创建索引和开启守护进程

使用方法

1、索引的建立

  • 某个索引 /usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/sphinx.conf <indexname>
  • 全部索引 indexname设置为空,增加--all 选项
  • 强制建立,忽略守护进程 增加--rotate

2、守护进程

  • 开启 /usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf
  • 关闭 立即/usr/local/sphinx/bin/searchd --stop 或 等待结束后停止--stopwait

3、php中加载

  • 示例代码
<?php
include_once("sphinxapi.php");
$sphinx = new SphinxClient();
$sphinx->SetServer($ip,$port);  
$sphinx->SetConnectTimeout(3);  
$sphinx->SetMaxQueryTime(2000); 
$sphinx->Query($keyword,$indexname);
$sphinx->GetLastError();

猜你喜欢

转载自blog.csdn.net/wyansai/article/details/81814371
今日推荐