Django elasticsearch集成。
项目描述
这是一个Django应用程序,帮助将Django与elasticsearch集成。它基于elasticsearch-dsl构建。
该项目旨在支持Python 3和Django 1.8(至少)。
该库处于开发中,请谨慎使用,因为在不稳定版本中API可能会更改。
快速入门
配置您的模型以进行索引
from django.db import models from el.models import Indexed class Article(models.Model, Indexed): title = models.CharField(max_length=78) @classmethod def get_indexable(cls): return cls.objects.all() @classmethod def configure_mapping(cls, mapping): # mapping is an elasticsearch_dsl Mapping object mapping.field('title', 'string') return mapping
从现在起,Article模型将被自动发现和索引。
更新搜索索引
./manage.py update_index
使用elasticsearch_dsl进行查询
# articles is a list of an Article instances articles = Article.search().query('match', title="Bob's article").execute() # articles is a list of elasticsearch_dsl hits articles = Article.search().query('match', title="Bob's article").execute(cast=False)
与elasticsearch_dsl相比,django-el提供了一个修改后的Search对象,默认情况下返回Django模型实例而不是原始的elasticsearch结果。您可以通过使用cast参数来控制此功能。
安装
使用pip将django-el作为常规Python包安装
pip install django-el
配置
Django-el是基于elasticsearch_dsl库构建的,并通过settings.py提供Django风格的连接配置。
ELASTICSEARCH_CONNECTIONS = { 'default': { 'hosts': ['127.0.0.1:9200'], 'serializer': 'project.serializers.MySerializer', } }
您可以使用ELASTICSEARCH_CONNECTIONS设置定义项目连接。它只是对低级的elasticsearch_dsl.connections.connections.create_connection函数的高级接口。
键(默认情况下,例如)是连接别名,其值是 create_connection 参数。
项目详情
关闭
django-el-0.2.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 61fc64def31e53358d0fb45fb37b89bb2ef2ddbf76dd9c5eda1a881593549b01 |
|
MD5 | 6f8ae4aa8ee924147c12dfa6d94d882a |
|
BLAKE2b-256 | 6a3fe89c2940412a2e56a2dfb4a59725efa64941f6da968cbfd7fc9f9db16078 |