网络资料真少啊,官方给的文档还算详细,但是没有交流就没有成功,开源的意义
Ubuntu环境下使用:
不知道为啥,搭配好环境后,原本在cmd栏下直接运行python的脚本命令找不到了,只能用运行python2.7来执行相同操作,求解
下载的coreseek自己提供的测试数据和conf文件,配置主要是将 path = /usr/bin/python2设定为电脑装有python可执行程序的位置,我的机器位置如上
python路径定义提供的是python源的位置,脚本的位置
源定义基本不用改,在python文件中采用相同格式即可
csft_demo_python.conf内容:
# python路径定义
python
{
path = /usr/local/coreseek/etc/pysource #BSD、Linux环境下设置
path = /usr/local/coreseek/etc/pysource/csft_demo #BSD、Linux环境下设置
#path = etc/pysource #Windows环境下设置,最好给出绝对路径
#path = etc/pysource/csft_demo #Windows环境下设置,最好给出绝对路径
}
#源定义
source python
{
type = python
name = csft_demo.MainSource #对应etc/pysource/csft_demo/__init__.py中的MainSource
}
#index定义
index python
{
source = python #对应的source名称
path = /usr/bin/python2
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
#charset_dictpath = etc/ #Windows环境下设置,/符号结尾
charset_type = zh_cn.utf-8
}
__init__.py内容:
# -*- coding:utf-8 -*-
# coreseek3.2 python source演示
# author: HonestQiao
# date: 2010-06-03 11:46
class MainSource(object):
def __init__(self, conf):
self.conf = conf
self.idx = 0
self.data = [
{'id':1, 'subject':u'国土部:5千万亩耕地中重度污染 不能再耕种', 'context':u'原标题:王世元: 中重度污染耕地5000万亩 每年将投数百亿治理修复新华网北京12月30日电(记者 陶叶)30日上午,国务院新闻办公室举行新闻发布会,请国土资源部副部长、国务院第二次全国土地调查领导小组办公室主任王世元和国家统计局副局长张为民等介绍第二次全国土地调查主要数据成果。', 'published':1270131607, 'author_id':1},
{'id':2, 'subject':u'Twitter主页改版 推普通用户消息增加趋势话题', 'context':u'4月1日消息,据国外媒体报道,Twitter本周二推出新版主页,目的很简单:帮助新用户了解Twitter和增加用户黏稠度。', 'published':1270135548, 'author_id':1},
{'id':3, 'subject':u'张艺谋超生游击队', 'context':u'Opera一直都被认为是浏览速度飞快,同时在移动平台上更是占有不少的份额。', 'published':1270094460, 'author_id':2},
]
def GetScheme(self): #获取结构,docid、文本、整数
return [
('id' , {'docid':True, } ),
('subject', { 'type':'text'} ),
('context', { 'type':'text'} ),
('published', {'type':'integer'} ),
('author_id', {'type':'integer'} ),
]
def GetFieldOrder(self): #字段的优先顺序
return [('subject', 'context')]
def Connected(self): #如果是数据库,则在此处做数据库连接
pass
#源码中的输入参数只有一个,但是我的机器报错,说需要输入一个,但是提供了两个,因为coreseek的不透明,我就直接在这里加了一个_,没有问题
def NextDocument(self,_): #取得每一个文档记录的调用
if self.idx < len(self.data):
item = self.data[self.idx]
self.id = item['id'] #'docid':True
self.subject = item['subject'].encode('utf-8')
self.context = item['context'].encode('utf-8')
self.published = item['published']
self.author_id = item['author_id']
self.idx += 1
return True
else:
return False
if __name__ == "__main__": #直接访问演示部分
conf = {}
source = MainSource(conf)
source.Connected()
while source.NextDocument():
print "id=%d, subject=%s" % (source.id, source.subject)
pass
#eof