Skip to main content

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

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

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


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.2.0.tar.gz (13.5 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.2.0-py2.py3-none-any.whl (14.1 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for pysolr-3.2.0.tar.gz
Algorithm Hash digest
SHA256 33d8c9ec3a0b5379f2d679e9a5d835d9bbbe4f89ca236b720fdc919c32c89029
MD5 abed75a1a61edc42714b37f13b231453
BLAKE2b-256 3b143cf5101c52f863693e99e3655043de59b8f539b4cd2eb8c35a352cf63d1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysolr-3.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1416f432a9e98b02e98af4bc22d1524ec6a6befd3f6c93da482ad551f98568f9
MD5 8787dbb8314d0f8feb7d15b685425606
BLAKE2b-256 f784b4b54cfa85f525b1553a4676cab67886ac2c2bab7daaa2c6991cfa0a9faf

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