MySQL 数据源:

/usr/local/etc/sphinx.conf

#配置source
source blog
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = xxxx
sql_db = test
sql_port = 3306
sql_query = \
SELECT ID, post_author, UNIX_TIMESTAMP(post_date) as date_added, post_content from wp_posts
sql_attr_uint = post_author
sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM wp_posts where ID=$id
}#配置index:
index blog
{
source = blog
path = /usr/local/sphinx/var/data/blog
docinfo = extern
charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/sphinx/dict
}

创建blog索引
indexer --config /usr/local/etc/sphinx.conf blog

XML数据源:

source blog
{type = xmlpipe2xmlpipe_command = cat /xxx/xxx.xml    #使用命令或程序打印xml内容即可被索引获取数据#xmlpipe_command = python print_xml.py #Sphinx可以通过管道获取程序输出,从而数据源
}index ActivationMessage
{source                  = blogpath                    = /usr/local/sphinx/var/data/blogdocinfo                 = externmlock                   = 0preopen                 = 0morphology              = nonedict                    = keywordscharset_dictpath        = /usr/local/sphinx/dictcharset_type            = zh_cn.utf-8html_strip              = 1wordforms               = /usr/local/mmseg3/etc/wordforms.txt
}

xml文件(类似下面格式):

<?xml version="1.0" encoding="utf-8"?><sphinx:docset><sphinx:schema><sphinx:field name="subject"/> <sphinx:field name="content"/><sphinx:attr name="published" type="timestamp"/><sphinx:attr name="author_id" type="int" bits="16" default="1"/></sphinx:schema><sphinx:document id="1234"><content>this is the main content <![CDATA[[and this <cdata> entry must be handled properly by xml parser lib]]></content><published>1012325463</published><subject>note how field/attr tags can be in <b class="red">randomized</b> order</subject><misc>some undeclared element</misc></sphinx:document><!-- ... more documents here ... --></sphinx:docset>

Python数据源(万能数据源)

配置文件

# 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 = pythonname = csft_demo.MainSource #python的第二个path下的__init__.py中的MainSource,Coreseek会自动调用该类下的NextDocument方法获取数据数据
}#index定义
index python
{source          = python             #对应的source名称path          = var/data/pythondocinfo           = externmlock          = 0morphology      = nonemin_word_len     = 1html_strip      = 0charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾charset_type     = zh_cn.utf-8
}

python代码:

# -*- coding:utf-8 -*-
# coreseek3.2 python source演示
# author: HonestQiao
# date: 2010-06-03 11:46
#path=etc/pysource/csft_demo/__init__.py
class MainSource(object):def __init__(self, conf):self.conf =  confself.idx = 0self.data = [{'id':1, 'subject':u"愚人节最佳蛊惑爆料 谷歌300亿美元收购百度", 'context':u'据国外媒体报道,谷歌将巨资收购百度,涉及金额高达300亿美元。谷歌借此重返大陆市场。  该报道称,目前谷歌与百度已经达成了收购协议,将择机对外公布。百度的管理层将100%保留,但会将项目缩减,包括有啊商城,以及目前实施不力的凤巢计划。正在进行测试阶段的视频网站qiyi.com将输入更多的Youtube资源。(YouTube在大陆区因内容审查暂不能访问)。  该消息似乎得到了谷歌CEO施密特的确认,在其twitter上用简短而暧昧的文字进行了表述:“ Withdraw from that market? u\'ll also see another result, just wait... ” 意思是:从那个市场退出?你还会看到另外一个结果。毫无疑问,那个市场指的就是中国大陆。而另外的结果,对应此媒体报道,就是收购百度,从而曲线返回大陆搜索市场。  在最近刚刚结束的深圳IT领袖峰会上,李彦宏曾言,“谷歌没有退出中国,因为还在香港”。也似乎在验证被收购的这一事实。  截止发稿,百度的股价为597美元,市值为207亿美元。谷歌以高达300亿美元的价格,实际溢价高达50%。而谷歌市值高达1796亿美元,而且手握大量现金,作这样的决策也在情理之中。    近日,很多媒体都在报道百度创始人、CEO李彦宏的两次拒购:一次是百度上市前夕,李彦宏拒绝谷歌的并购,这个细节在2月28日央视虎年首期对话节目中得到首次披露﹔一次是在百度国际化战略中,拒绝采用海外并购的方式,而是采取了从日本市场开始的海外自主发展之路。这也让笔者由此开始思考民族品牌的发展之路。   收购是打压中国品牌的惯用伎俩  2010年2月28日,央视经济频道《对话》节目昨晚推出虎年首期节目,百度董事长兼CEO李彦宏作为嘉宾做客节目。李彦宏首度谈及2005年百度上市前夕,谷歌CEO施密特曾秘密造访百度时秘密谈话的内容,主要是劝阻百度上市,李彦宏断然拒绝了施密特的“好意”。今天看来,施密特当日也许已有不祥的预感,这个几百人的小公司终有一日会成为他们的大麻烦。  本期《对话》一经播出,便引发了业界讨论。  外资品牌通过收购打压中国品牌的案例不胜枚举。从以往跨国企业并购的中国品牌来看,真正让其活下来的品牌并不多,要么被雪藏,要么被低端化。  因此,2005年百度没有接受Google的收购邀请,坚持自主发展,这对于保护中国品牌,维护中国网民信息安全有着至关重要的作用。当前百度市场份额高达76%,并持续增长,这也充分验证了李彦宏拒绝收购决策的正确性。  今天看来,“百度一下”已经成为3亿多中国网民的网络生存法则,而直到今天环视全球,真正能像中国一样,拥有自己独立搜索引擎的只有4个国家!我们也许应该庆幸当时李彦宏的选择。这个故事也告诉我们,中国企业做品牌还要靠自己!  收购也可能是中国企业走出去的陷阱  同样在2月28日,亚布力第十届年会上,李彦宏在论坛上指出:“我们和很多其它公司的国际化路子是很不一样的,我们不是去买一个国外的公司,”,李彦宏解释了百度率先选择日本作为走出去的对象的原因,因为日本和中国一衣带水的近邻优势,日本的市场规模,在日本也没有一家独大的搜索引擎。  中国企业收购这些外资品牌目的是“借船出海”。外资品牌进入中国是收购中国优质品牌,而中国企业进入国外市场的收购策略恰恰相反,这也是中国企业借船出海屡屡失败的原因所在。  笔者认为,中国互联网公司走出去要依靠自身发展,并不能单纯依靠收购。李彦宏在百度成立伊始就抱定了国际化决心,使百度真正在面对国际化机遇时,更加冷静和具有前瞻力。李彦宏也承认当前百度在日本还处于初级发展阶段,但他也预言“2012年,百度与Google划洋而治”,对此我们拭目以待!', 'published':1270131607, 'author_id':1},{'id':2, 'subject':u'Twitter主页改版 推普通用户消息增加趋势话题', 'context':u'4月1日消息,据国外媒体报道,Twitter本周二推出新版主页,目的很简单:帮助新用户了解Twitter和增加用户黏稠度。  新版Twittter入口处的内容眼花缭乱,在头部下方有滚动的热门趋势话题,左边列出了普通用户账户和他们最新的消息。  另一个显著的部分是“Top Tweets”,它采用了新算法推选出最热门的话题,每个几秒刷新一次。Twitter首席科学家Abdur Chowdhury表示,这种算法选出了所有用户的信息,而不是拥有大量追随者所发的信息。  首页对于首次访问网站的用户非常重要,因为这决定了用户的第一印象。研究发现,多达60%的Twittter用户在注册后的一个月内不再访问网站。Twittter希望能更好地展现网站的面貌,帮助游客找到感兴趣的东西', 'published':1270135548, 'author_id':1},{'id':3, 'subject':u'死都要上!Opera Mini 体验版抢先试用', 'context':u'Opera一直都被认为是浏览速度飞快,同时在移动平台上更是占有不少的份额。不久前,Opera正式向苹果提交了针对iPhone设计的Opera Mini。日前,台湾IT网站放出了Opera Mini和Safari的评测文章,下面让我们看看Opera和Safari到底谁更好用更快吧。  Opera Mini VS Safari,显示方式很不相同和Safari不同的是,Opera Mini会针对手机对网页进行一些调整  Opera Mini与Safari的运作原理不大相同。网页会通过Opera的服务器完整压缩后再发送到手机上,不像Safari可通过Multi-Touch和点击的方式自由缩放,Opera Mini会预先将文字照iPhone的宽度做好调整,点击区域后自动放大。如果习惯了Safari的浏览方式,会感觉不大顺手,不过对许多宽度太宽,缩放后文字仍然显示很小的网页来说,Opera Mini的显示方式比较有优势。  打开测试网站首页所花费的流量,Safari和Opera Mini的差距明显可见。这个在国内移动资费超高的局面来说,Opera Mini估计会比较受欢迎和省钱。Opera Mini的流量少得惊人,仅是Safari的十分之一  兼容性相比,Safari完胜打开Google首页,Safari上是iPhone专用界面,Opera则是一般移动版本  Opera Mini的速度和省流量还是无法取代Safari成为iPhone上的主要浏览器。毕竟iPhone的高占有率让许多网站,线上服务都为Safari设计了专用页面。光Google的首页为例子就看出了明显的差别。另外,像Google Buzz这样线上应用,就会出现显示错误。Google Buzz上,Opera无法输入内容  Opera Mini其他专属功能页面内搜索和关键字直接搜索相当人性化  除了Opera独创的Speed Dial九宫格快速启动页面外,和Opera Link和电脑上的Opera直接同步书签、Speed Dial设定外。Opera Mini还能够直接搜索页面中的文字,查找资料时相当方便。另外也能选取文字另开新分页搜索,比起Safari还要复制、开新页、粘贴简单许多。同时还能将整个页面打包存储,方便离线浏览。  现在Opera Mini想要打败Safari还剩下一个很严重的问题-苹果何时会或者会不会通过Opera Mini的审核。', '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):   #如果是数据库,则在此处做数据库连接passdef NextDocument(self):   #取得每一个文档记录的调用if self.idx < len(self.data):item = self.data[self.idx]self.id = item['id'] #'docid':Trueself.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 += 1return Trueelse:return Falseif __name__ == "__main__":    #直接访问演示部分conf = {}source = MainSource(conf)source.Connected()while source.NextDocument():print "id=%d, subject=%s" % (source.id, source.subject)

Sphinx 三种常见数据源配置相关推荐

  1. NHibernate学习之五:三种常见的配置方法。

    配置NHibernate有三种常见的配置方法.   1:在web.config,App.config里面配置 <?xml version="1.0" encoding=&qu ...

  2. xp系统蓝屏代码7b_遇到系统问题,三种常见处理方法你更pick谁

    使用恢复功能之前请务必备份好数据,一旦操作可能导致数据无法恢复!!!卡慢.蓝屏.进不去系统?系统出现故障了,是拜托朋友还是外出花钱?求人不如求己,遇到系统问题 , 三种常见处理方法你更pick谁? 0 ...

  3. hikari数据源配置类_Spring中的“多数据源”之详解

    注意事项 不同数据源的配置要分开 关注每次使用的数据源 有多个DataSource时系统如何判断 对应的设施(事务.ORM)如何选择DataSource 多数据源配置(二选一) 配置@Primary类 ...

  4. java常见的ide_在三个Java IDE中生成的三种常见方法

    java常见的ide 在本文中,我研究了NetBeans 8.0.2 , IntelliJ IDEA 14.0.2和Eclipse Luna 4.4.1生成的三种"通用"方法[ e ...

  5. 在三个Java IDE中生成的三种常见方法

    在本文中,我研究了NetBeans 8.0.2 , IntelliJ IDEA 14.0.2和Eclipse Luna 4.4.1生成的三种"通用"方法[ equals(Objec ...

  6. springboot sessionfactory_Spring Boot从入门到精通(五)多数据源配置实现及源码分析...

    多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...

  7. coreseek php接口,筹建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例...

    搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例 一个文档包含了安装.增量备份.扩展.api调用示例,省去了查找大量文章的时间. 搭建cor ...

  8. 体验一把 Flowable 三种常见网关

    Flowable 中网关类型其实也不少,常见的主要有三种类型,分别是: 排他网关 并行网关 包容网关 这三个里边最常用的当然就是排他网关了,今天松哥就来和小伙伴们聊一聊这三种网关,一起来体验一把这三种 ...

  9. 基于springboot和mybatis的多数据源配置

    基于springboot和mybatis的多数据源配置 1.首先新建一个springboot项目,项目结构如下: 引入mybatis和mysql依赖: <dependency><gr ...

最新文章

  1. What is mobile platform?
  2. 异常 java.lang.NumberFormatException: For input string:
  3. Dev控件使用 - 皮肤
  4. pyquery获取不到网页完整源代码_PyQuery 详解
  5. rabbitMq简介及docker安装
  6. 涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理
  7. 东华理工大学arm试卷_ARM东华理工大学2015-2016试卷A
  8. 安卓学习笔记45:初探开源框架OrmLite
  9. 内心的秘密写在脸上,科学家用面部识别预测性取向和犯罪倾向
  10. php中嵌套html代码和html代码中嵌套php方式
  11. python 去掉转义字符_python前期准备
  12. java拼装树_java 数据拼装成树结构
  13. 命令行怎么运行go程序_Go教程32: 编译打包运行程序
  14. springboot 程序发布到tomcat运行
  15. java开发spc分析软件,告诉你们什么才叫真的SPC软件?
  16. 从无到有 win10建window xp虚拟机之总结
  17. docker操作记录-5
  18. matlab仿真超声波测距,超声波测距仪制作-Arduino中文社区 - Powered by Discuz!
  19. android 热修复阿里,Android热修复(阿里热修复)
  20. DxmCms自动过滤内容中的广告法违禁词功能

热门文章

  1. 联想拯救者Y7000P-RTX3060安装显卡驱动 CUDA cudnn anaconda pytorch pycharm
  2. 温度转换程序中包含的python语法元素_1.4温度转换实例,python语法元素分析
  3. php冒泡排序详解笔记,PHP冒泡排序算法
  4. Hadoop与大数据技术大会 2012
  5. 输入年月日,输出星期几
  6. MySQL数据修改密码命令
  7. 年终回顾||MoPaaS魔泊云2018筑梦历程
  8. 拼接合并两个byte数组
  9. 基于vue+element-ui实现上传进度条
  10. (已更新)多分类经典语录微信小程序源码下载支持一键复制带壁纸,王者改名等功能