当前位置:金沙js333娱乐场 > 网络频道 > Sphinx中文分词搜索Coreseek Windows下安装与基本使用

Sphinx中文分词搜索Coreseek Windows下安装与基本使用

文章作者:网络频道 上传时间:2019-11-10

首先说明一下coreseek其实就是基于sphinx的中文分词版本,sphinx本身并没有提供中文分词功能,需要自行安装中文词库比较麻烦,coreseek提供了中文分词功能,提供了完整的官方中文使用文档,并且在使用上和官方的sphinx并没有差别。以coreseek-4.1版本为例

当一个功能需要对表中的text varchar等文本进行like查询时,MySQL全表扫描很慢,需要sphinx

下载地址 http://www.coreseek.cn/news/14/54/

1.解决性能问题

帮助手册 http://www.coreseek.cn/products-install/#doc_cn

2.解决中文分词问题

下面开始coreseek的安装

流程:

安装过程很简单,下载coreseek-4.1-win32.zip,解压至某一个文件夹,这里假设放在d:coreseek下,双击打开test.cmd进行测试,会出来一串命令行的提示信息,留意提示信息,如果没有提示错误就算安装完成

1.PHP先把要搜索的短语发给sphinx服务器,sphinx服务器返回的是记录的ID

安装后,先别急着怎么使用,首先要配置好文档,解缩包中有测试文件这里测试也略,教程尽量简单点(其实是我懒。。)

2.PHP用sphinx返回的ID查询数据库

配置文件的位置可以放在任何地方,不过建议就放在d:coreseekbin的目录好了,d:coreseeketc目录下提供了好多配置的参考,我们把csft_mysql.conf复制至d:coreseekbin下,命名为sphinx.conf(可任意名称),打开它看到的内容大概是这样:

用法一:sphinxse:把sphinx集成到MSQL里去,没有单独的sphinx服务器

#源定义

PHP只需要写一个sql语句即可,不用用户管sphinx,mysql会自己连接查询sphinx。如果要使用这种,需要在linux下重新编译mysql,把sphinx当成插件编译到mysql中去。

source mysql

实际操作:

{

1.先下载sphinx的包,我们下载的是coreseek【coreseek.cn

    type                    = mysql

2:coreseek是一个加了中文的sphinx

 

3:下载包之后几个重要文件说明

    sql_host                = localhost

实际应用:将etc文件夹下的csft_mysql.conf,即先复制mysql的配置文件模板到根目录下,并改名为sphinx.conf

    sql_user                = root

以下sql语句要学习下写的不错

    sql_pass                =

配置文件配置好之后就可以使用这个文件生成索引了

    sql_db                    = test

#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/

    sql_port                = 3306

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

    sql_query_pre            = SET NAMES utf8

#源定义

 

#配置数据源(要生成索引的数据)

    sql_query                = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents

#说明:一个配置文件中可以定义多个数据源

                                                              #sql_query第一列id需为整数

source goods

                                                              #title、content作为字符串/文本字段,被全文索引

{

    sql_attr_uint            = group_id          #从SQL读取到的值必须为整数

type= mysql

    sql_attr_timestamp        = date_added #从SQL读取到的值必须为整数,作为时间属性

sql_host= localhost

 

sql_user= rumble

    sql_query_info_pre      = SET NAMES utf8                                        #命令行查询时,设置正确的字符集

sql_pass= lumingzhe

    sql_query_info            = SELECT * FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息

sql_db= ushopdata

}

sql_port= 3306

 

#sphinx在取数据之前执行的sql语句一般是设置编码的语句set names编码

#index定义

sql_query_pre= SET NAMES utf8

index mysql

#一个数据源中只能有一个主查询,这条语句取出的数据就是sphin将要创建全文索引的语句

{

#主查询的要求:第一个字段必须是ID,如果名字不为ID,取个别名叫id(类型必须是非零唯一、不重复的整数)

    source            = mysql            #对应的source名称

#sphinx只能对属性字段排序,sphinx要排序的字段必须取出该字段,sphin排序必须将某个字段定义成一个属性

    path            = var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

sql_query= SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents

    docinfo            = extern

#sql_query第一列id需为整数

    mlock            = 0

#后面这些可以不用

    morphology        = none

#title、content作为字符串/文本字段,被全文索引

    min_word_len        = 1

#以下是用来定义属性:用来排序的sql_attr_uint可以定义多个比如我要对价格上架时间

    html_strip                = 0

#进行排序可以这样操作sql_attr_uint=shop_pricesql_attr_uint=add_time

 

sql_attr_uint= group_id#从SQL读取到的值必须为整数

    #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/

sql_attr_timestamp=date_added #从SQL读取到的值必须为整数,作为时间属性

    #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾

sql_query_info_pre= SETNAMES utf8#命令行查询时,设置正确的字符集

    charset_dictpath = etc/                            #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...

sql_query_info= SELECT* FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息

    charset_type        = zh_cn.utf-8

}

}

#index定义

 

#配置索引--》生成的索引文件

#全局index定义

#说明:一个数据源对应一个索引的配置

indexer

index goods_index

{

{

    mem_limit            = 128M

source=goods#对应的source名称

}

#sphinx生成的索引文件存放的目录

 

#注意:path中的地址的最后一个即data后面的goods是说:索引文件名叫goods

#searchd服务定义

#并不是说goods目录

searchd

path= D:金沙js333娱乐场,D_Ecoreseek-4.1-win32vardatagoods

{

#var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

    listen                  =  9312

docinfo= extern

本文由金沙js333娱乐场发布于网络频道,转载请注明出处:Sphinx中文分词搜索Coreseek Windows下安装与基本使用

关键词: