Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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?",
    },
])

# 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.1.dev0.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.1.dev0.macosx-10.10-x86_64.tar.gz (22.6 kB view details)

Uploaded Source

File details

Details for the file pysolr-3.3.1.dev0.tar.gz.

File metadata

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

File hashes

Hashes for pysolr-3.3.1.dev0.tar.gz
Algorithm Hash digest
SHA256 cae958a50b82f38afd210a9c001b71f3eabd6b3aea07279cc1f45d15e7a69506
MD5 937063a4d4a67344f95ffbdaae579723
BLAKE2b-256 0c9312ac15a4e4fbb8238dc321658253c1eec56e99b6284779381c0a81ca218c

See more details on using hashes here.

File details

Details for the file pysolr-3.3.1.dev0.macosx-10.10-x86_64.tar.gz.

File metadata

File hashes

Hashes for pysolr-3.3.1.dev0.macosx-10.10-x86_64.tar.gz
Algorithm Hash digest
SHA256 c51f738100e4753cbdd97364bdab5da98e33418f8c5f0f224d74f4f2351d421f
MD5 45fde1b8f44195dd85ca94379985851d
BLAKE2b-256 38ceecea11825bcb4504af9346eac0a804f74513ea774cfefba5e4442ecaffea

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 Sentry Error logging StatusPage Status page