使用python测试sphinx(coreseek)做全文索引

coreseek是一个基础sphinx的中文索引工具,我今天写一下关于使用python做测试的方式。

  1. coreseek安装,连接mysql的配置此处不赘述,很多人写过这方面的博客,单纯讲python连接sphinx.当然我们先启动sphinx进程,./searched
  2. python要连接sphinx肯定是需要第三方库的,你可以去pypi找,当然sphinx已经告诉我们了,我们去/home/lpj/soft/coreseek-3.2.14/csft-3.2.14/api (我下载的coreseek解压到了我的工作目录下的soft文件夹,根据你的情况),ls一下我们看到这些文件,你是否可以找到sphinxapi.py,test.py这是操作sphinx的api和测试脚本,当然还有php,java了。
  3. 了解了这些,我们首先在当前api目录下把sphinxapi拷贝到python使python可以使用这个模块

    cp sphinxapi.py -a /usr/local/lib/python2.7/dist-packages/,在idle中测试一下把from sphinxapi import *。没有报错引入成功。有了第三方模块,我们就要看看怎么使用了

  4. sphinx提供了测试脚本,我们试试,python test.py  python 。最后一个python是我要查找的关键字,显示能够查处数据
  5. 我们看看为什么test.py能测试sphinx了, vim test.py就知道了,开头from sphinxapi import *。前面不用看了,看到cl = SphinxClient()这一句开始下是我们需要了解的,我就把test.py中的变量直接写到函数中,好看一些

    cl = SphinxClient()

cl.SetServer ( ‘localhost‘, 9312 )  #主机与端口

cl.SetWeights ( [100, 1] )

cl.SetMatchMode (SPH_MATCH_ANY) #查询的匹配模式,这个自己去了解吧,一般用any

res = cl.Query ( ‘python‘, ‘*‘ )   #前一个是关键字,后一个是索引,*代表所有索引

打印print res,现在能看到结果了吗

{‘status‘: 0, ‘matches‘: [{‘id‘: 2, ‘weight‘: 2, ‘attrs‘: {}}, {‘id‘: 4, ‘weight‘: 2, ‘attrs‘: {}}], ‘fields‘: [‘title‘, ‘content‘], ‘time‘: ‘0.025‘, ‘total_found‘: 2, ‘warning‘: ‘‘, ‘attrs‘: [], ‘words‘: [{‘docs‘: 2, ‘hits‘: 4, ‘word‘: ‘python‘}], ‘error‘: ‘‘, ‘total‘: 2}

貌似很复杂的数据结构 ,仔细看一下,一个字典,包括status,matches,total_found等等,我们连接sphinx目的是什么?当然找出id再去查找mysql,所以res[‘matches‘]又是一个列表包含了2个字典,遍历一下

for i in res[‘matches‘]:

print i[‘id‘]

打印出了id,我们取出了id

使用python测试sphinx(coreseek)做全文索引

时间: 2024-11-03 05:41:19

使用python测试sphinx(coreseek)做全文索引的相关文章

测试sphinx/coreseek xmlpipe2 support NOT compiled

执行这个测试 /usr/local/coreseek/bin/indexer -c etc/csft.conf --all  出现下面错误提示  WARNING: source 'index1': xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libraries    xmlpipe2 support NOT compiled  yum install expat-devel*   然后重新安装sph

Sphinx + Coreseek 实现中文分词搜索

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

关于python测试webservice接口的视频分享

现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用python语言容易上手.今天就python测试webservice接口视频分享给大家 视频地址: http://pan.baidu.com/s/1kT5s3iB

sphinx,coreseek安装

sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本是2010年发布的,它是基于Sphinx0.9.9搜索引擎的.而4.1版本是2011年发布的,它是基于Sphinx2.0.2的.Sphinx从0.9.9到2.0.2还是有改变了很多的,有很多功能,比如sql_attr_string等是在0.9.9上面不能使用的. 可以同时安装sphinx,cores

Appium环境的安装与配置,Python测试脚本测试

Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒’的开发者线下公开课,报名即享受免费体验云主机 摘要 看了网上很多有关Appium的安装配置贴,都写得语焉不详,不清不楚,正好打算把自动化测试框架从Robotium切换到Appium, 顺手记录一下,给大家参考.转载请注明出处. Appium 安装 配置 测试 之前一直使用Robotium做为And

python测试断言

这几天看了一下python的测试,基于函数方法和基于类的测试,主要使用的模块是unittest模块,为特定的方法和类,建立测试模块,测试函数功能是否满足预期.下面是模仿书里面的一个例子. City.py模块 def city(city_name,country_name): full_city_name = city_name +','+country_name return full_city_name 为这个模块创建一个测试模块,主要是为了测试这个city方法是否能够满足预期. assert

Python测试开发-创建模态框及保存数据

Python测试开发-创建模态框及保存数据 原创: fin  测试开发社区  前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎么实现这种弹出效果,bootstrap已经为我们提供了相应的组件. 1.界面原型 点击添加,弹出模态框, 然后输入 用户:tester, 消息:你好.如下图1所示: ▲图1 再点击保存,那么数据库就存入了以上输入的数据,查看界面的用户列表会显示tester,如下图2所示: ▲图2 2.开发过程 接下

2019第一期《python测试开发》课程,10月13号开学

2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20:30-22:30 报名费:报名费2000一人(周期2个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.httprunner框架以及web平台做接口自动化测试 (装逼必备) 2.django平台开发 (python开发必会) 3.pytest框架结合selenium做web自动化测试 (

学习《Python核心编程》做一下知识点提要,方便复习(一)

学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿python来说就是.keyword.数值,类,函数,运算符,操作符...... 1.变量不用声明,类型不固定 2.True,False = False,True读出了什么?True是个bool()类实例 3.类型工厂函数就是python2.2后把int() bool()等对数据类型操作的函数分装成对象 类 了