码迷,mamicode.com
首页 > 其他好文 > 详细

coreseek实时索引全文搜索

时间:2015-02-18 18:50:44      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

工作流程:

  • 安装coreseek(win32版)
  • 建立一个实时索引配置文件
  • 根据配置文件开启searchd服务器
  • 向mysql数据库实时插入数据
  • 启动python客户端访问和搜索

安装coreseek(win32版)

建立实时索引配置文件

  • 解压后,在etc目录下新建一个csft_rt.conf文件
  • 写入如下配置:
#实时索引配置文件
index rt
{
    type                    = rt
    path            = C:\usr\local\coreseek-4.0.1-win32\var\data\rt
    
    #中文分词配置
    charset_dictpath = C:\usr\local\coreseek-4.0.1-win32\etc\                             
    charset_type        = zh_cn.utf-8

    #文档编号字段
    #id                                         

    #全文索引字段
    rt_field                  = movie            
    rt_field                  = url              

    #属性字段
    rt_attr_uint            = groupid
    
    #存储内容字段,字符串类型
    rt_attr_string			= date                 
    rt_attr_string          = movie              
    rt_attr_string          = url       		  

    #RT实时索引内存设置
    rt_mem_limit = 1024M
}

#searchd服务定义
searchd
{
    workers             =   threads
    listen              =   9312
    listen              = localhost:9306:mysql41    
    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_rt.pid  

    binlog_flush = 2
    
    binlog_max_log_size = 16M
}

根据配置文件启动searchd服务器

  • 回到解压文件根目录,shift+右键,打开cmd
  • 输入bin\searchd   -c   etc\csft_rt.conf
  • 服务器监听127.0.0.19306端口
技术分享

  • 打开另一个cmd,输入mysql  -h 127.0.0.1  -P  9306  连接
  • 再输入desc  rt ; 查看属性
技术分享

往数据库插入实时数据:

import MySQLdb

#connect to mysql db
try:
    db = MySQLdb.connect(host="127.0.0.1", user="root", passwd="1234", port=9306)
    cursor = db.cursor()
    print "Connect to db successfully!"
   
except:
    print "Fail to connect to db!"

#insert data to db
for line in open('C:\Users\Administrator\Desktop\ml-100k\u.item'):
    
    (identity,title,date,other,url) = line.split('|')[0:5]
    
    param = (identity,title,url,'1',date)
    
    sql = "insert into rt (id,movie,url,groupid,date) values(%s,%s,%s,%s,%s)"
    
    cursor.execute(sql,param)


db.commit()
db.close


启动客户端连接服务端搜索:

  • 到解压文件的api目录下,执行test.py   words
  • 这里的搜索词words是 : GoldenEye
技术分享


coreseek实时索引全文搜索

标签:

原文地址:http://blog.csdn.net/ns2250225/article/details/43877419

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!