Python - Solr API
Switch branches/tags
Nothing to show
Pull request Compare This branch is 37 commits ahead, 5 commits behind sensisoft:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
insol added Dec 31, 2013

Build Status #insol

##Python - Solr API

Insol is an evolution of a battle tested API for Solr search engine, the development of which started while I was working at SensiSoft.

As far as my experience goes good Solr API should be:

  • developer friendly - you can connect and get result from a working Solr instance in less than 5 minutes and you can test all featuers of Solr
  • teamwork friendly - you can write code others can use without being Solr experts and debug without spending a week analyzing some weird code constructs or mysterious strings
  • scale friendly - API needs to support sharding, multiple core deployments, querying Solr instances at various paths and should be performant

So, to solve that problems, insol delivers:

  • REPL friendly shortcuts module to start working right away
  • Solr queries as Python objects, so that others can use your code abstracted away from inner workings of Solr - this is a design similar to Django ORM with it's Q and F objects
  • fast and cache friendly - results as simple dicts, no builtin dict to object inflation code - either use the results as-is or provide your own inflation mechanism
  • configuration module with live config reload to support connecting to multiple Solr instances or cores at run time
  • flexible structure allowing you to customize the whole process of connecting to Solr instance and fetching documents without rewriting whole API

The core concept of insol is that building software is a group effort with a business objective, so API authors should strive to make it easy to write understandable and flexible code.


insol is compatible works with:

  • Python 2.6 and later versions
  • Solr 1.4


To install latest version from PyPI typing:

pip install insol

is enough. Or you can install this package (cutting edge version): python install


To simply try to see what happens or for testing particular queries against your Solr instance:

from insol.shortcuts import find
resp = find()


  • adding JSON to supported communication formats
  • moving to requests library for handling HTTP and HTTPS communication