coreseek简单的研究使用

来源:互联网 发布:徐州市邳州市知乎 编辑:程序博客网 时间:2024/06/05 06:27

一段时间没有写博客了,最近在研究coreseek的使用。就简略的写一些自己遇到的问题吧。

最可笑的问题我不知道怎么使用多个索引。还在网上查了不少,想想真是太好笑了。后来还是仔细研究了下coreseek的使用文档,可以建立多个index,当然对应的也是相应的source源。其实文档说的也很清楚了,必须有一个数据源,也可以有多个数据源。我是在一个conf文件里建立,我不知道是不是可以有多个conf文件,之前测试了一下俩个conf文件,生成的时候老是报错,于是放弃了。不论之前有多少个source,index,searchd只有一个,因为文档上说目前只能指定一个端口。

我想了想其他的问题,貌似没什么印象很深的问题。现在再看实时索引,这个也就是配置一个附索引。好了,就记录下这个问题吧。下面附带我的一个conf文件:

source mysql{       type                                        = mysql       sql_host                                    = localhost        sql_user                                    = root                 sql_pass                                    = 123456                 sql_db                                      = test                  sql_port                                    = 3306                sql_query_pre                         = SET NAMES utf8       sql_query                                 = SELECT uid,reg_time,email,username FROM qs_members       sql_attr_timestamp                 = reg_time}source cms{type                                        = mysql       sql_host                                    = localhost        sql_user                                    = root                 sql_pass                                    = 123456                 sql_db                                      = test                  sql_port                                    = 3306                sql_query_pre                         = SET NAMES utf8       sql_query                                 = SELECT uid,username,name,lastlogin FROM uchome_space       sql_attr_timestamp                 = lastlogin} index mysql{       source                                      = mysql       path                                         = E:/coreseek-4.1/var/data/mysql       charset_dictpath                   = E:/coreseek-4.1/etc/       charset_type                           = zh_cn.utf-8}index cms{   source                                      = cms       path                                         = E:/coreseek-4.1/var/data/cms       charset_dictpath                   = E:/coreseek-4.1/etc/       charset_type                           = zh_cn.utf-8} #全局index定义indexer{mem_limit= 600M}  searchd{       listen                                         = 9312       max_matches                         = 1000       pid_file                                     = E:/coreseek-4.1/var/log/searchd_mysql.pid       log                                            = E:/coreseek-4.1/var/log/searchd_mysql.log       query_log                                = E:/coreseek-4.1/var/log/query_mysql.log}
到这里,我假设您已经通读sphnix的说明文档。因为具体的参数我这里不再解释,您有什么不明白的,sphnix的文档里都有,都是一些基本的参数。说明一下indexer里的配置,mem_limit您可以根据自己的需要配置这个参数,如果这个参数您不配置的话,生成索引的时候会有一个warning:


好了,配置完这个conf文件,下面就是生成索引,命令还是一样的,正常的情况如下图:


注意这里最后的参数--all,这个参数有很多选择,我这里也不再说明,还是那句话,sphnix文档里都有。这里这个all参数的意思是把这个conf文件列出的所有索引进行重新编制索引,这样就不必一次列出每个索引的名字了。这个选项在配置文件较小的情况下,或者在类似基于cron的维护工作中很有用。

好了,生成索引当然还得启动sphnix,如下图:


可以看到我配置俩个索引都能用了(我实在找不到一个词来说明我的索引能工作了,所以这里说能用),sphnix服务运行在9312端口。服务启动后,还得进行测试。我这里用了俩个php文件来测试,第一个index.php来测试msyql索引:

include 'sphinxapi.php';  // 加载Sphinx API $sc = new SphinxClient(); // 实例化Api$sc->setServer('localhost', 9312); // 设置服务端,第一个参数sphinx服务器地址,第二个sphinx监听端口$res = $sc->query('有限公司', 'mysql'); // 执行查询,第一个参数查询的关键字,第二个查询的索引名称,mysql索引名称(这个也是在配置文件中定义的),多个索引名称以,分开,也可以用*表示所有索引。echo "<pre>";print_r($res);echo "</pre>";
第二个cms.php来测试cms索引:

include 'sphinxapi.php';  // 加载Sphinx API $sc = new SphinxClient(); // 实例化Api$sc->setServer('localhost', 9312); // 设置服务端,第一个参数sphinx服务器地址,第二个sphinx监听端口$res = $sc->query('张三', 'cms'); // 执行查询,第一个参数查询的关键字,第二个查询的索引名称,mysql索引名称(这个也是在配置文件中定义的),多个索引名称以,分开,也可以用*表示所有索引。echo "<pre>";print_r($res);echo "</pre>";
最后是结果,打印的结果非常的长,我只能截了一些,index.php测试结果:


cms.php测试结果:


到这里,多个索引的添加算是到一个新的台阶,写的比较乱。我的测试环境是window7,linux也是一样命令。如果有什么问题,请在下面提问。








原创粉丝点击