1.环境准备
首先需要在本地安装好solr和pysolr。
solr现在更新到了6代,出于稳定性和pysolr兼容性的考虑,选择使用5.0.0版本,下载地址:http://archive.apache.org/dist/lucene/solr/5.0.0/。 至于如何安装以及对solr的初次体验,可以看我之前转载的文章:
【Apache Solr入门教程(初学者之旅) 】
http://blog.csdn.net/sinat_33455447/article/details/56834344
pysolr则使用pip安装,如果没有安装pip的筒子可以去github上获得源码:https://github.com/django-haystack/pysolr。
2.操作
如果经过以上步骤,相信你已经建立起了一个jcg核心。接下来,先使用pysolr连接上solr(本地的solr需要先开起来):
from __future__ import print_function
import pysolr
#这个url很重要,不能填错了
solr = pysolr.Solr('http://localhost:8983/solr/jcg/', timeout=10)
由于之前已经导入的是csv数据,增加一下数据的时候需要按照最开始的格式,否则会报错。
#错误的数据格式
solr.add([
{
"id": "doc_3",
"name": "A test document",
"food":"dsaklj"
}
])
出现如下报错:
pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=doc_3] unknown field ‘food’]
#正确的数据格式,可以少项
solr.add([
{
"id": "doc_1",
"name": "A test document",
"cat": "book",
"price": "7.99",
"inStock": "T",
"author": "George R.R. Martin",
"series_t": "A Song of Ice and Fire",
"sequence_i": "1",
"genre_s": "fantasy",
}
])
搜索数据
#搜索jcg中的全部数据
results = solr.search('*:*')
#搜索id为doc_1的数据
doc1 = solr.search('id:doc_1')
返回的结果可以看做一个list
查看数据
#查看长度
print (len(results))
#打印所有文档
print (results.docs)
#打印文档中的name属性值
for result in results:
print (result['name'])
删除数据
#删除id为doc_1的数据
solr.delete(id='doc_1')
#删除所有数据
solr.delete(q='*:*')
以上就是使用pysolr的一些基本操作