Pysolr,是基于Pytho的ApacheSolr轻量级封装。它提供了服务器查询并返回基于查询的结果接口。
特性:
基本功能,选择、更新和删除
索引优化
超时支持
使用环境:
Pytho2.7-3.5
Requests2.0+
Optioal-simplejso
Optioal-kazooforSolrCloudmode
示例代码:
# If o Pytho 2.Xfrom __future__ import prit_fuctioimport pysolr# Setup a Solr istace. The timeout is optioal.solr = pysolr.Solr('https://localhost:8983/solr/', timeout=10)# How you'd idex data.solr.add([ { "id": "doc_1", "title": "A test documet", }, { "id": "doc_2", "title": "The Baaa: Tasty or Dagerous?", },])# Later, searchig is easy. I the simple case, just a plai Lucee-style# query is fie.results = solr.search('baaas')# The ``Results`` object stores total results foud, by default the top# te most relevat results ad ay additioal data like# facets/highlightig/spellig/etc.prit("Saw {0} result(s).".format(le(results)))# Just loop over it to access the results.for result i results: prit("The title is '{0}'.".format(result['title']))# For a more advaced query, say ivolvig highlightig, you ca pass# additioal optios to Solr.results = solr.search('baaas', **{ 'hl': 'true', 'hl.fragsize': 10,})# You ca also perform More Like This searches, if your Solr is cofigured# correctly.similar = solr.more_like_this(q='id:doc_2', mltfl='text')# Fially, you ca delete either idividual documets...solr.delete(id='doc_1')# ...or all documets.solr.delete(q='*:*')# For SolrCloud mode, iitialize your Solr like this:zookeeper = pysolr.Zookeeper("zkhost1:2181,zkhost2:2181,zkhost3:2181")solr = pysolr.SolrCloud(zookeeper, "collectio1")









评论