solrpy
solrpy is a Python client for Solr, an enterprise search server
built on top of Lucene. solrpy allows you to add documents to a
Solr instance, and then to perform queries and gather search results
from Solr using Python.
Overview
Here's the basic idea:
import solr
s = solr.SolrConnection('http://example.org:8083/solr')
doc = {
"id": 1,
"title": "Lucene in Action",
"author": ["Erik Hatcher", "Otis Gospodnetić"]
}
s.add(doc, commit=True)
response = s.query('title:lucene')
for hit in response.results:
print hit['title']
More powerful queries
Optional parameters for query, faceting, highlighting and more like this
can be passed in as Python parameters to the query method. You just need
to convert the dot notation (e.g. facet.field) to underscore notation
(e.g. facet_field) so that they can be used as parameter names.
For example, let's say you wanted to get faceting information in your
search result::
response = s.query('title:lucene', facet='true', facet_field='subject')
and if the parameter takes multiple values you just pass them in as a list::
response = s.query('title:lucene', facet='true', facet_field=['subject', 'publisher'])
Tests
To run the tests, you need to have a running solr instance. The easiest
way to do this is:
curl -sSL https://raw.githubusercontent.com/moliware/travis-solr/master/travis-solr.sh | SOLR_VERSION=4.10.3 SOLR_CONFS=tests bash
Feel free to join our discussion list if you have ideas or suggestions.