Lightweight python library for Solr indexing, searching and schema management with optional Django integration.
Project description
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.py
By 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for parasolr-0.9.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd83b5b7305a856932c9f5d61f95eba3029810374ef97b5bf147ad40893ca30f |
|
MD5 | d209d27a2974678cff5aca92a2eab259 |
|
BLAKE2b-256 | 05972e9f16a6bbcfac7bd8a5ea5408588a239d0a4875ff9881cc79053c36f45d |