sphinx 在linux 系统的安装

1.到官网下载源代码安装,你也可以根据系统直接下载rpm包安装

本人系统:

[[email protected] ~]# cat /proc/version
Linux version 2.6.32-573.22.1.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #1 SMP Wed Mar 23 03:35:39 UTC 2016

我们这里选择源码安装

下载完之后放到目录/home下 版本是sphinx-2.2.10

2.解压>>:tar -xzvf sphinx-2.2.10-release.tar.gz

>>:mv sphinx-2.2.10-release sphinx     给文件夹重命名

>>:cd sphinx                                             进入目录

>>:./configure --prefix=/usr/local/sphinx

>>:make        编译

make install     编译安装

cd /usr/local/sphinx/etc/

mv sphinx-min.conf.dist sphinx.conf

vim sphinx.conf

下面是里面的内容配置

#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

source src1
{
type = MySQL

sql_host
= 127.0.0.1    
sql_user
= root
sql_pass
=
sql_db
= test  //数据库name
sql_port
= 3306 # optional, default is 3306

sql_query
= \
SELECT id, realname,import_id, account, source ,UNIX_TIMESTAMP(import_time) AS import_timestamp \
FROM contact_list_test

sql_attr_uint
= id
sql_attr_timestamp= import_timestamp
}

index test1
{
source
= src1
path = /usr/local/sphinx/var/data/test1
}

index testrt
{
type = rt
rt_mem_limit
= 128M

path = /usr/local/sphinx/var/data/testrt

rt_field
= title
rt_field
= content
rt_attr_uint
= gid
}

indexer
{
mem_limit
= 128M
}

searchd
{
listen
= 9312
listen
= 9306:mysql41
log = /usr/local/sphinx/var/log/searchd.log
query_log
= /usr/local/sphinx/var/log/query.log
read_timeout
= 5
max_children
= 30
pid_file
= /usr/local/sphinx/var/log/searchd.pid
seamless_rotate= 1
preopen_indexes= 1
unlink_old
= 1
workers
= threads # for RT to work
binlog_path
= /usr/local/sphinx/var/data
}

生成索引

cd /usr/local/sphinx/bin

./indexer -c /usr/local/sphinx/etc/sphinx.conf --all

如果此时出现以下错误,

FATAL: failed to lock /usr/local/sphinx/var/data/test1.spl: Resource
temporarily unavailable, will not index. Try --rotate option.

请改用命令

./indexer -c /usr/local/sphinx/etc/sphinx.conf --all --rotate

启动spinx搜索服务器:./searchd -c /usr/local/sphinx/etc/sphinx.conf

如果报错:
/usr/local/sphinx/bin/indexer:error while loading shared
libraries:libmysqlclient.so.18 cannot opent shared object file: No such
file or directory

这主要是因为你安装库后,没有配置相应的环境变量.可以通过连接修正这个问题

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

对于64bit Linux,命令为:

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18

然后再重试.

使用sphinx php api测试:

[php] view plain copy print?

  1. <?php
  2. require ( "sphinxapi.php" );   //此文件在sphinx源代码的api文件夹中可以找到
  3. $cl = new SphinxClient ();
  4. $q = "weibo";
  5. $sql = "test1";
  6. $mode = SPH_MATCH_ALL;
  7. $host = "localhost";
  8. $port = 9312;
  9. $index = "*";
  10. // $groupby = "";
  11. // $groupsort = "@group desc";
  12. // $filter = "group_id";
  13. // $filtervals = array();
  14. // $distinct = "";
  15. // $sortby = "";
  16. // $sortexpr = "";
  17. // $limit = 20;
  18. // $ranker = SPH_RANK_PROXIMITY_BM25;
  19. // $select = "";
  20. $cl->SetServer ( $host, $port );
  21. $cl->SetConnectTimeout ( 1 );
  22. $cl->SetArrayResult ( true );
  23. $cl->SetMatchMode ( $mode );
  24. // if ( count($filtervals) )    $cl->SetFilter ( $filter, $filtervals );
  25. // if ( $groupby )              $cl->SetGroupBy ( $groupby, SPH_GROUPBY_ATTR, $groupsort );
  26. // if ( $sortby )               $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby );
  27. // if ( $sortexpr )         $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr );
  28. // if ( $distinct )         $cl->SetGroupDistinct ( $distinct );
  29. // if ( $select )               $cl->SetSelect ( $select );
  30. // if ( $limit )                $cl->SetLimits ( 0, $limit, ( $limit>1000 ) ? $limit : 1000 );
  31. //$cl->SetRankingMode ( $ranker );
  32. $res = $cl->Query ( $q, $index );
  33. ////////////////
  34. // print me out
  35. ////////////////
  36. if ( $res===false )
  37. {
  38. print "Query failed: " . $cl->GetLastError() . ".<br/>";
  39. } else
  40. {
  41. if ( $cl->GetLastWarning() )
  42. print "WARNING: " . $cl->GetLastWarning() . "<br/><br/>";
  43. print "Query ‘$q‘ retrieved $res[total] of $res[total_found] matches in $res[time] sec.<br/>";
  44. print "Query stats:<br/>";
  45. if ( is_array($res["words"]) )
  46. foreach ( $res["words"] as $word => $info )
  47. print "    ‘$word‘ found $info[hits] times in $info[docs] documents\n";
  48. print "<br/>";
  49. if ( is_array($res["matches"]) )
  50. {
  51. $n = 1;
  52. print "Matches:<br/>";
  53. foreach ( $res["matches"] as $docinfo )
  54. {
  55. print "$n. doc_id=$docinfo[id], weight=$docinfo[weight]";
  56. foreach ( $res["attrs"] as $attrname => $attrtype )
  57. {
  58. $value = $docinfo["attrs"][$attrname];
  59. if ( $attrtype==SPH_ATTR_MULTI || $attrtype==SPH_ATTR_MULTI64 )
  60. {
  61. $value = "(" . join ( ",", $value ) .")";
  62. } else
  63. {
  64. if ( $attrtype==SPH_ATTR_TIMESTAMP )
  65. $value = date ( "Y-m-d H:i:s", $value );
  66. }
  67. print ", $attrname=$value";
  68. }
  69. print "<br/>";
  70. $n++;
  71. }
  72. }
  73. }
  74. //
  75. // $Id$
  76. //
  77. ?>

打印的结果:

Query ‘weibo‘ retrieved 1000 of 3873 matches in 0.001 sec.
Query stats:
‘weibo‘ found 3873 times in 3873 documents 
Matches:
1. doc_id=1, weight=1, import_timestamp=2015-06-26 16:25:41
2. doc_id=4, weight=1, import_timestamp=2015-06-26 16:25:41
3. doc_id=5, weight=1, import_timestamp=2015-06-26 16:25:41
4. doc_id=6, weight=1, import_timestamp=2015-06-26 16:25:41
5. doc_id=8, weight=1, import_timestamp=2015-06-26 16:25:41
6. doc_id=9, weight=1, import_timestamp=2015-06-26 16:25:41
7. doc_id=10, weight=1, import_timestamp=2015-06-26 16:25:41
8. doc_id=11, weight=1, import_timestamp=2015-06-26 16:25:41
9. doc_id=12, weight=1, import_timestamp=2015-06-26 16:25:41
10. doc_id=13, weight=1, import_timestamp=2015-06-26 16:25:41
11. doc_id=14, weight=1, import_timestamp=2015-06-26 16:25:41
12. doc_id=15, weight=1, import_timestamp=2015-06-26 16:25:41
13. doc_id=16, weight=1, import_timestamp=2015-06-26 16:25:41
14. doc_id=17, weight=1, import_timestamp=2015-06-26 16:25:41
15. doc_id=18, weight=1, import_timestamp=2015-06-26 16:25:41
16. doc_id=19, weight=1, import_timestamp=2015-06-26 16:25:41
17. doc_id=20, weight=1, import_timestamp=2015-06-26 16:25:41
18. doc_id=21, weight=1, import_timestamp=2015-06-26 16:25:41
19. doc_id=22, weight=1, import_timestamp=2015-06-26 16:25:41
20. doc_id=23, weight=1, import_timestamp=2015-06-26 16:25:41

时间: 2024-11-08 13:48:15

sphinx 在linux 系统的安装的相关文章

在虚拟机的Linux系统下安装wineqq

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 本文参考教程:http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=7688&extra=page%3D1 WineQQ下载地址:http://pan.baidu.com/s/1c2FSTsk qq是一款国内非常著名的聊天工具,但是在腾讯的官网并没有Linux操作系统下的qq安装版本,但是我们也有办法在Linux系统下安装qq,下面我们实现在Linux安装w

Linux系统中安装MySQL数据库操作手册

Linux系统中MySQL数据库安装手册 一.安装概述: 在Linux操作系统中安装MySQL数据库是一个我们必须要掌握的一门技术,也决定了你以后找工作的薪资待遇,所以你知道它的厉害了吧!学会安装只是第一步,你还得学好数据库的基本操作,以及搭建一个数据库的主从配置等等.这些我都会在后面的博文中说到.下面我就简单的写一些安装MySQL数据库的一些步骤,仅供参考,如有什么不妥的地方,还请见谅! 二.安装步骤: (一)基本准备工作 1.打开虚拟机,在虚拟机中下载好最新版的MySQL数据库的压缩包.在M

linux系统上安装paramiko模块

Linux系统上安装paramiko模块要求python要是2.7以上的,所以在安装模块之前应该安装python2.7(这里的安装过程略去) 在安装setuptools的时候突然报错了,RuntimeError:Compression requires the (missing) zlib module原因是因为没有安装zilb和zlib-devel包. yum install zlib yum installzlib-devel 安装完成后,重新编译 python2.7[不需要删除,只需要重新

Linux系统上安装字体

最近项目中需要控制字体类型,然后就上网查了一下在linux系统上安装字体,在window上和linux上,字体要求一样,都是ttf格式,下面这是window上的字体截图 在linux系统中的/usr/share/fonts下面新建一个目录,这里取名my_fonts,然后将tff格式的字体复制到这个文件夹中, 通过fc-list这个命令查看该系统下面安装了那些字体, 然后进入到新创建的文件夹下,ll查看这个文件下有那些文件,可以看到刚才复制进去的字体: 然后执行下面的三条命令, mkfontsca

在RedHat Linux系统中安装和配置snmp服务

检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 SNMP服务安装后会有以上安

在LINUX系统中安装KVM虚拟化

首先CPU要支持虚拟化(Intel是vmx,AMD是svm)[[email protected] ~]# egrep '(vmx|svm)' --color /proc/cpuinfo确保BIOS里开启VT,如果无法安装会有未开启虚似化的提示,去BISO里开启Intel(R) Virtualization Tech [Enabled] 安装虚拟化套件,由于安装包较多,应该先配置好YUM库,然后用YUM安装虚似化的四个组,完装完无法打开有可能是你少装包了,检查一下是不是有错字.[[email pr

linux 系统的安装步骤

linux系统的安装(centos6.8) 第一步   设置引导开机按F2进入此界面 安装系统的主界面的五个选项分别表示 1.Install orupgrade an existing system 安装新系统或者升级已经存在的系统 2.Install systemwith basic video driver 安装带有基本视频驱动程序的系统 3.Rescueinstalled system 救援模式 4.Boot from localdrive 从本地驱动器引导系统 5.Memory test

linux 系统的安装

linux系统的安装(centos6.8) 第一步   设置引导开机按F2进入此界面 安装系统的主界面的五个选项分别表示 1.Install orupgrade an existing system 安装新系统或者升级已经存在的系统 2.Install systemwith basic video driver 安装带有基本视频驱动程序的系统 3.Rescueinstalled system 救援模式 4.Boot from localdrive 从本地驱动器引导系统 5.Memory test

Linux系统自动化安装基础

Linux系统自动化安装基础 安装程序CentOS系统安装系统启动流程:bootloader-->kernel(initramfs)-->rootfs-->/sbin/init注意:安装过程中与启动过程中的文件不同 anaconda系统安装程序tui: 基于图形库curses的文本窗口gui:图形窗口 安装程序启动过程MBR: boot.catstage2: isolinux/isolinux.bin配置文件: isolinux/isolinux.cfg每个对应的菜单选项:加载内核: i