Django ElasticSearch集成。

django-el的Python项目详细描述


这是Django应用程序,帮助Django与ElasticSearch集成。 它建立在elasticsearch-dsl之上。


3.xpypiMIT License


项目旨在支持Python3和Django1.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:

pip install django-el

配置

django el构建在elasticsearch_dsl库之上,并提供 通过settings.py

的django路连接配置
ELASTICSEARCH_CONNECTIONS = {
    'default': {
        'hosts': ['127.0.0.1:9200'],
        'serializer': 'project.serializers.MySerializer',
    }
}

可以使用^{tt11}定义项目连接$ 设置。它只是一个高于低级的高级接口 elasticsearch_dsl.connections.connections.create_connection函数。

键(在本例中是默认的)是连接别名,它的值是 是create_connection参数。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入