Skip to main content

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

https://secure.travis-ci.org/toastdriven/pysolr.png

Features

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

The run-tests.py script will automatically perform the steps below and is recommended for testing by default unless you need more control.

Running a test Solr instance

Downloading, configuring and running Solr 4 looks like this:

./start-test-solr.sh

Running the tests

The test suite requires the unittest2 library:

Python 2:

python -m unittest2 tests

Python 3:

python3 -m unittest tests

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysolr-3.3.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysolr-3.3.0-py2.py3-none-any.whl (14.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pysolr-3.3.0.tar.gz.

File metadata

  • Download URL: pysolr-3.3.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysolr-3.3.0.tar.gz
Algorithm Hash digest
SHA256 4e1dd1461285d11f01bcd35286f46ccdf214a05e99a89c2d849b99b08a6a7fc1
MD5 247883783954f06ccfe22cc2deb625a5
BLAKE2b-256 bc2a86c8bbaefac6e3dbd8f8aadde3ab41b0a519422a57d922e3c9f7d5315556

See more details on using hashes here.

File details

Details for the file pysolr-3.3.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pysolr-3.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5d36b8d8bac38e158d5e3f4fec0cb7709aef213ed3f42fedf9ac95dd6df83032
MD5 d6a5cd4728d43230614b49d46d6b1b99
BLAKE2b-256 0cf2b67e2d5a33afe6f79884521dfb6361f0c37151983f2115af9185fee317a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page