跳转到主要内容

Django elasticsearch集成。

项目描述

这是一个Django应用程序,帮助将Django与elasticsearch集成。它基于elasticsearch-dsl构建。


3.x pypi MIT License


该项目旨在支持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 (7.0 kB 查看哈希值)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面