搜索引擎四:CoreSeek配置MySql数据源

来源:互联网 发布:怎么查看数据库关系 编辑:程序博客网 时间:2024/05/21 08:35

安装MySql和CoreSeek

  • 这里用的是MySql5.0和Coreseek4.0.1-win32
  • 安装参考:MySql5.0安装指南
  • 默认主机:localhost
  • 默认MySql端口:3306
  • 下载解压Coreseek:下载Coreseek

修改root用户密码

  • 默认的root用户没有密码
  • 到mysql安装目录的bin目录下
  • 执行cmd命令:mysqladmin -u root -password 1234
  • 将root用户的密码设为:1234

创建数据库

  • 登陆数据库:mysql -u root -p1234
  • 创建数据库:create database html_url;
  • 显示数据库:show databases;

设计数据表字段

  • 文档编号:id
  • 查询过滤:分组(group_id),时间(date_info)
  • 全文检索:网页概要(summary),URL
  • 进入数据库:use html_url
  • 编写sql文件:documents.sql
  • 将文件导入数据库:source d:\documetns.sql
  • 修改mysql的默认编码为utf-8:修改mysql默认编码为utf-8
-- documetns.sql-- 主机: localhost-- 端口:3306-- 数据库: html_url---- 表的结构 `documents`--DROP TABLE IF EXISTS `documents`;CREATE TABLE IF NOT EXISTS `documents` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `summary` varchar(255) NOT NULL,  `url` text NOT NULL,  `date_info` datetime NOT NULL,  `group_id` int(2) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;---- 转存表中的数据 `documents`--INSERT INTO `documents` (`id`, `summary`, `url`, `date_info`, `group_id`) VALUES(1, '百度官网', 'https://www.baidu.com/', '2015-02-25 13:20:07', 1),(2, '多玩官网', 'http://www.duowan.com/', '2015-02-25 13:20:08', 1),(3, '淘宝官网', 'http://www.taobao.com/', '2015-02-25 13:20:09', 1);

设置Coreseek索引文件

  • 设置Coreseek根目录/etc/csft_mysql.conf文件
  • 前提是完成之前建数据库,表和插入数据的操作
#csft_mysql.conf#MySql数据源定义source mysql{    type                    = mysql            #数据源类型        sql_host                = localhost        #主机    sql_user                = root             #数据库用户名    sql_pass                = 1234             #root用户的密码    sql_db                  = html_url         #html_url数据库    sql_port                = 3306             #默认端口    sql_query_pre           = SET NAMES utf8    #设置查询语句    sql_query               = SELECT id, group_id, UNIX_TIMESTAMP(date_info) AS date_info, summary, url FROM documents    sql_attr_uint           = group_id          #Coreseek查询结果附带属性    sql_attr_timestamp      = date_info        #时间属性    #命令行查询时,设置正确的字符集    sql_query_info_pre      = SET NAMES utf8                                            #命令行查询时,从数据库读取原始数据信息    sql_query_info          = SELECT * FROM documents WHERE id=$id }#定义MySql数据源的索引index格式index mysql{    #对应的数据源名称    source          = mysql                     #数据源路径    path            = C:\usr\local\coreseek-4.0.1-win32\var\data\mysql    docinfo         = extern    mlock           = 0    morphology      = none    min_word_len    = 1    html_strip      = 0    #中文分词配置    charset_dictpath = C:\usr\local\coreseek-4.0.1-win32\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 = C:\usr\local\coreseek-4.0.1-win32\var\log\searchd_mysql.pid      log = C:\usr\local\coreseek-4.0.1-win32\var\log\searchd_mysql.log        query_log = C:\usr\local\coreseek-4.0.1-win32\var\log\query_mysql.log }

根据配置文件建立索引

  • 在Coreseek根目录输入cmd命令,为数据源建立索引
  • bin\indexer -c etc\csft_mysql.conf --all
  • 结果为3个文档,跟我们插入的3条数据相对应,说明正确建立索引

查询数据源中的数据

  • 数据源中有3条数据:百度官网,多玩官网和淘宝官网
  • CMD默认编码是gbk,而输入是utf-8,会乱码,现在把CMD设置成utf-8编码模式
  • 将CMD设为utf-8模式:chcp 65001
  • 再在Coreseek根目录搜索:bin\search -c etc\csft_mysql.conf

小结

  • 现在Coreseek已经可以查询Mysql的数据了
  • 下一步用Scrapy将网页的summary和URL爬取存进数据库
  • 然后将搜索结果返回给Django的结果页面
0 0
原创粉丝点击