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
aggragations 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.2.19 (2015-09-29)
use ELASTICSEARCH_URL value as is so that it works with auth and https
0.2.18 (2015-08-12)
throw InvalidSearchString exception in case elastic returns SearchParseException (by Mugur Rus)
0.2.17 (2015-08-11)
add support for phase search via q param (by Mugur Rus)
0.2.16 (2015-08-04)
fix pip install
0.2.15 (2015-08-04)
parse mapping for fields type dict
avoid hidden dependencies - put it in requirements file (by Dinu Ghermany)
0.2.14 (2015-07-31)
avoid pymongo dependency
0.2.13 (2015-07-22)
add default_operator param to _build_query_string (by Mugur Rus)
0.2.12 (2015-07-07)
use both resource and datasource schema to convert datetime values (by Anca Farcas)
0.2.11 (2015-06-22)
return no hits when trying to find one resource and there is no mapping
0.2.10 (2015-06-12)
fix: make it eve 0.6 compatible
0.2.9 (2015-05-11)
fix: stop converting null values to datetime
0.2.7 (2015-04-16)
feat: allow delete by query
0.2.6 (2015-02-10)
fix a bug when getting cursor count
0.2.5 (2015-02-09)
add index param to put_mapping method
0.2.4 (2014-12-26)
add build_query_string method
0.2.3 (2014-12-08)
fix serializer on python 2.7 (by Jonathan Dray)
0.2.2 (2014-12-02)
make use of score sort if there is a query defined
0.2.1 (2014-11-27)
allow resource filters being callbacks for request specific filtering
0.2.0 (2014-11-24)
fix q param search for using eve <= 0.4
fix filters request args filtering
let user set mapping in schema
support aggregations
0.1.17 (2014-11-12)
switch to elasticsearch lib
add factory for es and indices
0.1.13 (2014-07-21)
fix count to allow extra params
0.1.12 (2014-07-08)
fix for superdesk search_backend setting
0.1.11 (2014-06-27)
add custom json serializer to work with bson.ObjectId
0.1.10 (2014-06-11)
fix is_empty
0.1.9 (2014-05-29)
fix is_empty call
implement find_one_raw
0.1.8 (2014-05-29)
fix remove by lookup
0.1.7 (2014-05-28)
preserve mapping after deleting all documents for given type
0.1.6 (2014-05-09)
support source param on find
0.1.5 (2014-05-05)
fix for elastic 1.0+ fields handling
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.
Source Distribution
Built Distribution
Hashes for Eve_Elastic-0.2.19-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdc101c9d9210c9f833dc126003164604c7dba67c5ce8032379ac129436d9285 |
|
MD5 | 364ce07553f564cc8d7f5b571ca7a69c |
|
BLAKE2b-256 | 794d5b303a523654293dddafd702f6b334c250bd32c8360c4f8487fa23819215 |