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 - simplejson

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-solr-test-server.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.3.tar.gz (14.2 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.3-py2.py3-none-any.whl (14.7 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for pysolr-3.3.3.tar.gz
Algorithm Hash digest
SHA256 a6d92a80fd01460fbccb557074a315a57fa7e313fadb910562c7fa7a6c7a57f1
MD5 cfbf68986b3a39e32d5a53aa01677398
BLAKE2b-256 83d7c9127c3c3853268288ba769b552d10ae4a2f5ddcc2e1d9355e759c2541be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysolr-3.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 caf591085c14efae134ae44bc4e879f58e468176b23bb10d75a2b958c0ad8f33
MD5 5a10905832869f763e23b086191a72f5
BLAKE2b-256 6de693c4bc78ff6023acc1fab14c9d883f4f03f78f6e54132cc2be78e8274c7f

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