使用pysolr库操作solr(一)

来源:互联网 发布:男人心酸的一生 知乎 编辑:程序博客网 时间:2024/09/21 09:25

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_functionimport 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的一些基本操作

0 0