coreseek java_使用python测试sphinx(coreseek)做全文索引
pip install sphinx
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
總結
以上是生活随笔為你收集整理的coreseek java_使用python测试sphinx(coreseek)做全文索引的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Git学习(3)GitHub和SVN的区
- 下一篇: 单点登陆设计
