Skip to main content

A super simple Solr Cli

Project description

solrcli - Solr CLI

Super simple (and small) Command Line Interface to perform frequend actions upon Solr instance.

Search features are provided from pysolr lib by Django Haystack.

Installation (not yet available)

pip install solrcli

Configuration

Solrcli can take parameters in two ways:

  • via a config file
  • via command line

Using config file allows you to set up different environments. See example below hosts.yml:

production-server:
  host: solr-production.foo.com
  core: products
  sanity_checks:
    column_values_at_least: 
      column: enabled

staging-server:
  host: solr-staging.foo.com
  core: products
  sanity_checks:
    column_values_at_least: 
      column: enabled

You can choose enviroment in the command line as:

(venv) $ python -m solrcli -c hosts.ini -i test-server reload

If you prefer to provide params each time you can pass --host and --core as application options before command.

Usage

Generic options

Print help informations for main command with python -m solrcli --help. Use --help after the command to print specific options.

Usage: solrcli.py [OPTIONS] COMMAND [ARGS]...

Options:
  --host TEXT          Solr hostname with port
  --core TEXT          Solr core
  -c, --config TEXT    config file path
  -i, --instance TEXT  remote instance from config file
  --help               Show this message and exit.

Commands:
  fullimport
  getconfig
  reload
  show-config

Reloading

Invoke core reload

(venv) $ python -m solrcli --host=my-solr-instance.com --core=core0 reload

Configurations

Get config from Solr instance passing feature from the list below:

  • dataimport
(venv) $ python -m solrcli --host=my-solr-instance.com --core=core0 getconfig --feature=dataimport

Status

Get core status. If you use --waitfinish the script will wait until fullimport finish.

The --notify allows you to receive an email with core counts.

Usage: solrcli.py status [OPTIONS]

Options:
  --waitfinish / --no-waitfinish  Wait if data import is running
  --notify TEXT                   Comma separated list of e-mail to deliver
                                  result
  --help                          Show this message and exit.

Full import

Invoke core data import handler.

Usage: solrcli.py fullimport [OPTIONS]

Options:
  --sanitycheck / --no-sanitycheck
                                  Perform full-import only if sanity check
                                  succeded.
  --notify TEXT                   Comma separated list of e-mail to deliver
                                  result
  --help                          Show this message and exit.

The --notify params allows you to receive an e-mail after data import will be completed.

If --sanitycheck is provided fullimport is called only if all sanity checks are passed. Sanity checks to be perfomed can be defined in the settings YAML file in the instance like below:

instances:
  core-test:
    host: my-solr-instance.com
    core: core0
    sanity_checks:
      column_values_at_least: 
        column: published

TODO

  • authentication
  • deeper config inspection
  • focus results: perform a /search or similar and get back only interesting nodes
  • query using URL
  • v2 Api for Solr Cloud

Authors

License

This project is licensed under the GNU Affero General Public License v3.0 License - see the LICENSE file for details

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

solrcli-0.1.3.tar.gz (5.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page