Description
solrpy is a Python client for Solr, an enterprise search server built on top of Lucene. solrpy allows you to add documents to a Solr instance, and then to perform queries and gather search results from Solr using Python.
solrpy alternatives and similar packages
Based on the "Search" category.
Alternatively, view solrpy alternatives based on common mentions on social networks and blogs.
-
elasticsearch-py
Free and Open, Distributed, RESTful Search Engine -
elasticsearch-dsl-py
High level Python client for Elasticsearch -
Search Engine Parser
Lightweight package to query popular search engines and scrape for result titles, links and descriptions -
esengine
ElasticSearch ODM (Object Document Mapper) for Python - pip install esengine
Tired of breaking your main and manually rebasing outdated pull requests?
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of solrpy or a related project?
README
solrpy
solrpy is a Python client for Solr, an enterprise search server built on top of Lucene. solrpy allows you to add documents to a Solr instance, and then to perform queries and gather search results from Solr using Python.
Overview
Here's the basic idea:
import solr
# create a connection to a solr server
s = solr.SolrConnection('http://example.org:8083/solr')
# add a document to the index
doc = {
"id": 1,
"title": "Lucene in Action",
"author": ["Erik Hatcher", "Otis Gospodnetić"]
}
s.add(doc, commit=True)
# do a search
response = s.query('title:lucene')
for hit in response.results:
print hit['title']
More powerful queries
Optional parameters for query, faceting, highlighting and more like this can be passed in as Python parameters to the query method. You just need to convert the dot notation (e.g. facet.field) to underscore notation (e.g. facet_field) so that they can be used as parameter names.
For example, let's say you wanted to get faceting information in your search result::
response = s.query('title:lucene', facet='true', facet_field='subject')
and if the parameter takes multiple values you just pass them in as a list::
response = s.query('title:lucene', facet='true', facet_field=['subject', 'publisher'])
Tests
To run the tests, you need to have a running solr instance. The easiest way to do this is:
curl -sSL https://raw.githubusercontent.com/moliware/travis-solr/master/travis-solr.sh | SOLR_VERSION=4.10.3 SOLR_CONFS=tests bash
Community
Feel free to join our discussion list if you have ideas or suggestions.