Lightweight python wrapper for Apache Solr.
Project description
pysolr is a lightweight Python wrapper for Apache Solr. It provides an interface that queries the server and returns results based on the query.
Status
Features
Basic operations such as selecting, updating & deleting.
Index optimization.
“More Like This” support (if set up in Solr).
Spelling correction (if set up in Solr).
Timeout support.
Requirements
Python 2.6 - 3.3
Requests 2.0+
Optional - lxml
Optional - simplejson
Optional - cssselect for Tomcat error support
Installation
sudo python setup.py install or drop the pysolr.py file anywhere on your PYTHONPATH.
Usage
Basic usage looks like:
# If on Python 2.X from __future__ import print_function import pysolr # Setup a Solr instance. The timeout is optional. solr = pysolr.Solr('http://localhost:8983/solr/', timeout=10) # How you'd index data. solr.add([ { "id": "doc_1", "title": "A test document", }, { "id": "doc_2", "title": "The Banana: Tasty or Dangerous?", }, ]) # You can optimize the index when it gets fragmented, for better speed. solr.optimize() # Later, searching is easy. In the simple case, just a plain Lucene-style # query is fine. results = solr.search('bananas') # The ``Results`` object stores total results found, by default the top # ten most relevant results and any additional data like # facets/highlighting/spelling/etc. print("Saw {0} result(s).".format(len(results))) # Just loop over it to access the results. for result in results: print("The title is '{0}'.".format(result['title']) # For a more advanced query, say involving highlighting, you can pass # additional options to Solr. results = solr.search('bananas', **{ 'hl': 'true', 'hl.fragsize': 10, }) # You can also perform More Like This searches, if your Solr is configured # correctly. similar = solr.more_like_this(q='id:doc_2', mltfl='text') # Finally, you can delete either individual documents... solr.delete(id='doc_1') # ...or all documents. solr.delete(q='*:*')
LICENSE
pysolr is licensed under the New BSD license.
Running Tests
Downloading, configuring and running Solr looks like this:
./start-test-solr.sh
Running the tests:
python -m unittest2 tests python3 -m unittest tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pysolr-3.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1416f432a9e98b02e98af4bc22d1524ec6a6befd3f6c93da482ad551f98568f9 |
|
MD5 | 8787dbb8314d0f8feb7d15b685425606 |
|
BLAKE2b-256 | f784b4b54cfa85f525b1553a4676cab67886ac2c2bab7daaa2c6991cfa0a9faf |