parasolr is a lightweight python library for Apache Solr indexing, searching and schema management with optional Django integration. It includes a Solr client (parasolr.solr.SolrClient). When used with Django, it provides management commands for updating your Solr schema configuration and indexing content.
Tested against Python 3.9-3.11, Solr 8.6 and 9.2, and Django 3.2-5.0 and without Django.
Installation
Install released version from pypi:
pip install parasolr
To install an unreleased version from GitHub:
pip install git+https://github.com/Princeton-CDH/parasolr@develop#egg=parasolr
To use with Django:
Add parasolr to INSTALLED_APPS
Configure SOLR_CONNECTIONS in your django settings:
SOLR_CONNECTIONS = { 'default': { 'URL': 'http://localhost:8983/solr/', 'COLLECTION': 'name', # Any configSet in SOLR_ROOT/server/solr/configsets. # The default configset name is "_default" as of Solr 7. # For Solr 6, "basic_configs" is the default. 'CONFIGSET': '_default' } }Define a SolrSchema with fields and field types for your project.
Run solr_schema manage command to configure your schema; it will prompt to create the Solr core if it does not exist.
Development instructions
This git repository uses git flow branching conventions.
Initial setup and installation:
Recommmended: create and activate a Python 3.x virtualenv:
python3 -m venv parasolr source parasolr/bin/activate
Install the package with its dependencies as well as development dependencies:
pip install -e . pip install -e '.[dev]'
Install pre-commit hooks
Install configured pre-commit hooks (currently black and isort):
pre-commit install
Styling was instituted in version 0.8; as a result, git blame may not reflect the true author of a given line. In order to see a more accurate git blame execute the following command:
git blame <FILE> –ignore-revs-file .git-blame-ignore-revs
Or configure your git to always ignore the black revision commit:
git config blame.ignoreRevsFile .git-blame-ignore-revs
Unit testing
Unit tests are written with pytest but use some Django test classes for compatibility with Django test suites. Running the tests requires a minimal settings file for Django-required configurations.
Copy sample test settings and add a secret key:
cp ci/testsettings.py testsettings.py python -c "import uuid; print('\nSECRET_KEY = \'%s\'' % uuid.uuid4())" >> testsettings.pyBy default, parasolr expects Solr 8. If running tests with an earlier version of Solr, either explicitly change MAJOR_SOLR_VERSION in your local testsettings.py or set the environment variable:
export SOLR_VERSION=x.x.x
To run the test, either use the configured setup.py test command:
python setup.py test
Or install test requirements in and use pytest directly:
pip install -e '.[test]' pytest
License
parasolr is distributed under the Apache 2.0 License.
©2019-2024 Trustees of Princeton University. Permission granted via Princeton Docket #20-3619 for distribution online under a standard Open Source license. Ownership rights transferred to Rebecca Koeser provided software is distributed online via open source.
Release files for parasolr 0.9.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| parasolr-0.9.2.tar.gz | 52.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| parasolr-0.9.2-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 114.8 kB
Release files / parasolr-0.9.2.tar.gz
| Download URL | parasolr-0.9.2.tar.gz |
|---|---|
| Size | 52.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d76b4ba788f9317e17e01f9b47af8c3861eebe4b2c3dc1bc0d78d53fc9d4f280
|
|
BLAKE2b-256 checksum How to use checksums |
36d88441977e25bde697a0d5b98adba682abb6414a3ffd65b7605a5bfbde2af9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / parasolr-0.9.2-py2.py3-none-any.whl
| Download URL | parasolr-0.9.2-py2.py3-none-any.whl |
|---|---|
| Size | 62.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
dd83b5b7305a856932c9f5d61f95eba3029810374ef97b5bf147ad40893ca30f
|
|
BLAKE2b-256 checksum How to use checksums |
05972e9f16a6bbcfac7bd8a5ea5408588a239d0a4875ff9881cc79053c36f45d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|