coreseek实时索引全文搜索

工作流程:

  • 安装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

时间: 2024-11-10 01:57:12

coreseek实时索引全文搜索的相关文章

Coreseek:部门查询和增量索引代替实时索引

1.行业调查 索引系统需要通过主查询来获取所有的文档信息,一个简单的实现是整个表的数据到内存,但是这可能会导致整个表被锁定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作).同时,会浪费大量的内存来存储查询结果.喜欢它的问题. 为了避免出现这样的情况.CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值.将由最大值和最小值定义自然数区间分成若干份,一次获取数据.建立索引.现举比例如以下: s

Coreseek:区段查询及增量索引代替实时索引

1.区段查询 索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同时,将浪费大量内存用于存储查询结果,诸如此类的问题吧. 为了避免出现这种情况,CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值,将由最大值和最小值定义自然数区间分成若干份,一次获取数据,建立索引.现举例如下: sq

实时的分布式搜索和分析引擎——Elasticsearch

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 但是,Lucene只是一个库.想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的. Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的R

php+中文分词scws+sphinx+mysql打造千万级数据全文搜索

Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据.Sphinx创建索引的速度为:创建100万条记录的索引只需3-4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒.Sphinx的

Sphinx + Coreseek 实现中文分词搜索

Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Google等第三方站点提供的站内全文搜索的差别 Sphinx Coreseek介绍 Coreseek安装使用 1. 全文检索 1.1 全文检索 vs. 数据库 全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用.当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应

sphinx实时索引和高亮显示

sphinx实时索引和高亮显示 时间 2014-06-25 14:50:58  linux技术分享 -欧阳博客 原文  http://www.wantlearn.net/825 主题 Sphinx数据库 上次介绍了coreseek与sphinx的区别,并详细记录了安装coreseek文档说明,以及给php加上sphinx模块,详细内容请参考我写的coreseek详解这篇文档,这次主要介绍sphinx是如何做到实时索引.首先配置进入到coreseek配置文件目录,对原始配置文件进行配制,这里介略说

Mysql+Sphinx实现全文搜索

最近在做一个搜索引擎,主要是对图书方面的对象级的搜索,首先来了解下Sphinx吧. 它能够提高你的查询的速度,这个不是一般的快. Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,他可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索.         Sphinx特别为一些脚本语言设计搜索API接口,如:PHP.Python.Perl.Ruby等,同时为MySQL也设计了一个存储引擎插件. Sphinx单一索引最大可包含1亿

Lucene及全文搜索实现原理

Lucene及全文搜索实现原理 全文搜索 全文搜索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式.这个过程类似于通过字典中的检索字表查字的过程.全文搜索搜索引擎数据库中的数据. ????全文搜索的过程主要分为两个部分,索引的建立以及索引的搜索. 国内外的全文搜索常用的检索模型主要有向量模型,布尔模型等. 布尔模型 布尔模型是第一个信息检索的模型,可能也是最

MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.19 了,所以,一些小的应用可以用它做全文搜索了,像sphinx和Lucene这样偏重的.需要配置或开发的,节省了成本. 这儿有一个原创的Mysql全文搜索的文章, mysql的全文搜索功能:http://blog.csdn.net/bravekingzhang/article/details/672