Elasticsearch data layer for eve rest framework
Project description
Eve-Elastic is elasticsearch data layer for eve REST framework.
Features
fulltext search
filtering via elasticsearch filter dsl
facets support
elasticsearch mapping generator for schema
License
Eve-Elastic is GPLv3 licensed.
Install
$ pip install Eve-Elastic
Usage
Set elastic as your eve data layer.
import eve
from eve_elastic import Elastic
app = eve.Eve(data=Elastic)
Config
There are 2 options for Eve-Elastic taken from app.config:
ELASTICSEARCH_URL (default: 'http://localhost:9200/')
ELASTICSEARCH_INDEX - (default: 'eve')
Query params
Eve-Elastic supports eve like queries via where param which work as term filter.
On top of this, there is a predefined query_string query which does fulltext search.
$ curl http://localhost:5000/items?q=foo&df=name
q - query (default: *)
df - default field (default: _all)
Filtering
For more sophisticated filtering, you can use filter query param which will be used as filter for the query, using elastic filter dsl.
Facets
To add a facets support for specific resource, add facets into its datasource:
DOMAIN = {
'contacts': {
'datasource':
'facets': {
'urgency': {'terms': {'field': 'urgency'}},
'versioncreated': {'date_histogram': {'field': 'versioncreated', 'interval': 'hour'}}
}
}
}
You will find more info about facets in elasticsearch docs.
Changelog
0.1.4 (2014-05-02)
Make it work with elastic 1.0+
0.1.3 (2014-01-31)
Allow filtering via elasticsearch filter dsl
0.1.2 (2014-01-30)
Fix pip install (add missing MANIFEST file)
0.1.1 (2014-01-30)
Add changelog ;)
Migrate readme to rst and use it for long_description
0.1.0 (2014-01-28)
Initial release
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.