设为首页 收藏本站
查看: 908|回复: 0

[经验分享] 基于PHP的搜索引擎Sphinx安装步骤

[复制链接]

尚未签到

发表于 2017-4-11 12:26:00 | 显示全部楼层 |阅读模式
  系统要求:
  1.Windows XP或以上,或者是Linux系统
  2.Mysql 5.0以上
  安装步骤
  1、先在官方网站下载最新的安装包sphinx-1.10-beta-win32.zip
  2、解压到D盘,目录为 D:\spihinx
  3、在根目录(D:\spihnx)创建sphinx.conf文件,内容如下:
  

# Minimal Sphinx configuration sample (clean, simple, functional)
#
source test1
{
type= mysql
sql_host= localhost
sql_user= search
sql_pass= search
sql_db= test
sql_port= 3306# optional, default is 3306
sql_query= \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint= group_id
sql_attr_timestamp= date_added
sql_query_info= SELECT * FROM documents WHERE id=$id
}

index test1
{
source= test1
path= D:/sphinx/data/
docinfo= extern
#charset_type= sbcs
# 编码
charset_type  = utf-8
#  指定utf-8的编码表
charset_table  = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
# 简单分词,只支持0和1,如果要搜索中文,请指定为1
ngram_len    = 1
# 需要分词的字符,如果要搜索中文,去掉前面的注释
ngram_chars   = U+3000..U+2FA1F
}

#index testrt
#{
#type= rt
#rt_mem_limit= 32M
#
#path= @CONFDIR@/data/testrt
#charset_type= utf-8
#
#rt_field= title
#rt_field= content
#rt_attr_uint= gid
#}

indexer
{
mem_limit= 32M
}

searchd
{
listen= 9312
listen= 9306:mysql41
log= D:/sphinx/log/searchd.log
query_log= D:/sphinx/log/query.log
read_timeout= 5
max_children= 30
pid_file= D:/sphinx/log/searchd.pid
max_matches= 1000
#seamless_rotate= 1
preopen_indexes= 0
unlink_old= 1
workers= threads # for RT to work
}

  4、修改配置,参数说明如下:
  Source部分配置项说明

#type 数据库类型,目前支持mysql与pgsql
#strip_html 是否去掉html标签
#sql_host 数据库主机地址
#sql_user 数据库用户名
#sql_pass 数据库密码
#sql_db 数据库名称
#sql_port 数据库采用的端口
#sql_query_pre 执行sql前要设置的字符集,用utf8必须SET NAMES utf8
#sql_query 全文检索要显示的内容,在这里尽可能不使用where或group by,将where与groupby的内容交给sphinx,由sphinx进行条件过滤与groupby效率会更高
#注意:select 出来的字段必须至少包括一个唯一主键(ARTICLESID)以及要全文检索的字段,你计划原本在where中要用到的字段也要select出来
#这里不用使用orderby
#sql_attr_开头的表示一些属性字段,你原计划要用在where,orderby,groupby中的字段要在这里定义
#根据我们原先的SQL:
#select * from eht_articles where title like ? and catalogid=? And edituserid=? And addtime between ? and ? order by hits desc
#我们需要对catalogid,edituserid,addtime,hits进行属性定义(这四个字段也要在select的字段列表中),定义时不同的字段类型有不同的属性名称,具体可以见sphinx.conf.in中的说明
index部分配置项说明
#source 数据源名
#path 索引记录存放目录,如d:/sphinx/data/cgfinal,实际存放时会存放在d:/sphinx/data目录,然后创建多个cgfinal名称,不同扩展名的索引文件。
#其他的配置如min_word_len,charset_type,charset_table,ngrams_chars,ngram_len这些则是支持中文检索需要设置的内容。
#如果检索的不是中文,则charset_table,ngrams_chars,min_word_len就要设置不同的内容,具体官方网站的论坛中有很多,大家可以去搜索看看。
  5、将安装包中的“example.sql”文件导入到test库中
  6、注册系统服务
  写道

D:\Sphinx\bin> D:\Sphinx\bin\searchd --install --config D:\Sphinx\sphinx.conf --servicename SphinxSearch
  7、启动服务
  8、我在启动服务的时候出错,在网上找了一下,解决方法如下:
    写道

# 先停掉SphinxSearch服务,或直接杀进程,要保证log/searchd.pid文件的一致性

indexer.exe --all # 重建所有索引,可以看到xxx.sph文件又回来了

searchd.exe # 启动searchd服务

indexer.exe --all --rotate # 试试用rotate命令重建索引

   
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-363457-1-1.html 上篇帖子: php中几个字符处理函数的说明 下篇帖子: php 传出的json数据给js用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表