当前位置:首页 > PHP教程 >

Yii框架中sphinx索引配置方法解析

发布时间:2024-03-18 09:24:00 作者:佚名 阅读:(2)

在Yii框架中,Sphinx搜索引擎提供了一种高效的全文搜索解决方案,并且Yii框架也提供了方便使用Sphinx的接口。接下来云梦编程为大家详细的介绍一下Sphinx索引配置方法,有需要的小伙伴可以参数一下:

步骤:先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

#源定义
source mysql
{
  type          = mysql
  sql_host        = localhost
  sql_user        = root
  sql_pass        = root
  sql_db          = yii2
  sql_port        = 3306
  sql_query_pre      = SET NAMES utf8
  sql_query        = SELECT id, zhan_name, url, title, xu_id, status, UNIX_TIMESTAMP(addtime) as addtime FROM zhan
  #sql_query第一列id需为整数
  #title、content作为字符串/文本字段,被全文索引
  #sql_attr_uint      = price      #从SQL读取到的值必须为整数
  sql_attr_timestamp    = addtime  #从SQL读取到的值必须为整数,作为时间属性
  sql_query_info_pre   = SET NAMES utf8                    #命令行查询时,设置正确的字符集
  sql_query_info      = SELECT * FROM zhan WHERE id=$id #命令行查询时,从数据库读取原始数据信息
}
#源定义2
source mysql_goods
{
  type          = mysql
  sql_host        = localhost
  sql_user        = root
  sql_pass        = root
  sql_db          = yii2
  sql_port        = 3306
  sql_query_pre      = SET NAMES utf8
  sql_query        = SELECT id, goods_name, price FROM goods
  #sql_query第一列id需为整数
  #title、content作为字符串/文本字段,被全文索引
  sql_attr_uint      = price      #从SQL读取到的值必须为整数
  #sql_attr_timestamp    = addtime #从SQL读取到的值必须为整数,作为时间属性
  sql_query_info_pre   = SET NAMES utf8                    #命令行查询时,设置正确的字符集
  sql_query_info      = SELECT * FROM goods WHERE id=$id #命令行查询时,从数据库读取原始数据信息
}
#index定义
index mysql
{
  source      = mysql       #对应的source名称
  path      = D:/yii/advanced/vendor/coreseek-4.1-win32/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
  docinfo      = extern
  mlock      = 0
  morphology    = none
  min_word_len    = 1
  html_strip        = 0
  #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
  charset_dictpath = D:/yii/advanced/vendor/coreseek-4.1-win32/etc/               #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
  charset_type    = zh_cn.utf-8
}
#index定义2
index mysql_goods
{
  source      = mysql_goods      #对应的source名称
  path      = D:/yii/advanced/vendor/coreseek-4.1-win32/var/data/goods #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
  docinfo      = extern
  mlock      = 0
  morphology    = none
  min_word_len    = 1
  html_strip        = 0
  #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
  charset_dictpath = D:/yii/advanced/vendor/coreseek-4.1-win32/etc/               #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
  charset_type    = zh_cn.utf-8
}
#全局index定义
indexer
{
  mem_limit      = 128M
}
#searchd服务定义
searchd
{
  listen         =  9312
  read_timeout    = 5
  max_children    = 30
  max_matches      = 1000
  seamless_rotate    = 0
  preopen_indexes    = 0
  unlink_old      = 1
  pid_file = D:/yii/advanced/vendor/coreseek-4.1-win32/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
  log = D:/yii/advanced/vendor/coreseek-4.1-win32/var/log/searchd_mysql.log    #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
  query_log = D:/yii/advanced/vendor/coreseek-4.1-win32/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
  binlog_path =                #关闭binlog日志
}

以上是在Yii框架中配置Sphinx索引的基本方法。当然,实际的配置可能会有所不同,具体取决于您的应用需求和Sphinx服务器的实际情况。

© 2023 - 云梦编程网 版权所有 鲁ICP备2021017318号-4