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

安装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的结果页面

你可能感兴趣的:(数据源)