支持Django的ElasticSearch客户端。

rubber的Python项目详细描述


rubber是一个用于elasticsearch的python客户端。


其主要功能是:
-rubber易于使用
-rubber不试图隐藏或包装elasticsearch语法。
-rubber与django很好地集成:
-自动将模型保存到elasticsearch
-在django模型上提供一个manager风格的对象,用于查询
-ruber是单元测试友好型的:运行测试不需要
elasticsearch实例


dependencies
===

ruber需要'requests'python包。

安装
输入类型,例如:




client=rubber.elasticsearch('articles','article')

__搜索、计数和映射终结点。
这些终结点在客户端的搜索、计数和映射属性上可用:

client.search
client.mapping
client.count


e=client.mapping.get()
response=client.mapping.put(somedict)
response=client.mapping.delete()

所有四个方法(get/put/post/delete)都直接映射到[它们的等价的请求方法](http://docs.python requests.org/en/latest/api/\requests.request),
意味着您可以传递请求库接受的任何附加参数(文件、头、cookie等)。


response=client.search.get(params={"q":"*"})

这意味着您可以这样搜索:

response=client.search()相当于client.search.get()


像这样发送json:

somedict=response.json


还可以获得更多信息(请参阅[请求文档](http://docs.python requests.org/en/latest/api/requests.response)):

status=response.status_code

在搜索时,您还可以查看response.results,
以获取hitcollection,它是一个可重复命中的对象。

results=response.results
对于命中结果:
打印%s:%s%(hit.source.title,hit.score)

hit objects

hit对象是普通的python对象,它们在生成的json上为您提供对象表示法。
为了方便起见,它们还允许您在不使用uderscore的情况下获取'''.'属性,例如:

hit.'.'源'.'=>;exact同样的事情
hit.score=gt;高级配置


ugh[requests_configuration options](http://docs.python requests.org/en/latest/user/advanced/configuration requests)。

ber.elasticsearch:

es=rubber.elasticsearch(raise_on_error=true)


在运行ElasticSearch时。
如果是这样的话,Rubber有一个配置选项,允许您模拟ElasticSearch返回的内容。

积分
----



elasticsearch=ruber.elasticsearch()

title=models.charfield(最大长度=255)
content=models.textfield()

将其保存到ElasticSearch。

可以关闭此功能:


class article(models.model):
同一个django应用程序在同一索引中的模型,
每个模型具有不同的文档类型。


索引名称是应用程序的名称。文档类型是模型的名称(在我们的示例中为"article")

可以这样更改:


class article(models.model):
一个具有多个索引的模型

您可以向模型中添加任意多个ruber.elasticsearch属性,每个属性都保存为不同的索引/文档类型,
如下:


class article(models.model):
index1=ruber.elasticsearch(index\name='index1',type='type1')
index2=rubber.elasticsearch(index_name='index2',type='type2')

#mapping
response=article.elasticsearch.mapping.put(mapping)mapping是一个dict


cle.objects.get(pk=1)

response=article.elasticsearch.put()索引此文档
response=article.elasticsearch.delete()删除此文档


其他客户端
===

查看[其他elasticsearch客户端](http://www.elasticsearch.org/guide/appendix/clients.html)

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

推荐PyPI第三方库


热门话题
java在EclipseIndigo上安装新的Glassfish服务器   java打印组织的最短方法是什么。w3c。多姆。文件发送到stdout?   安卓 java。lang.NullPointerException:尝试在oncreate方法中的null对象引用上调用virtual方法   linux java,我的线程无一例外地终止了,为什么?   JSON和Lombok构造函数的java问题Jackson反序列化   Spring引导升级后,java无法实例化自定义库的数据源   输入Kotlin中Java Scanner的等价物是什么?   列表vs数组作为java中递归的参数   创建名为“FilterService”的bean时发生java错误:通过字段“filterDAO”表示的未满足的依赖关系   如何在Java(基本上是Android)中将指纹图像的字节数组转换为iso 19794_2?   java如何使用基本适配器单击每个位置   java如何更新数据库显示消息“您的数据库已更新,没有任何错误,但实际上我的数据库未更新”   不同比例的安卓屏幕设备的java程序   java Android For循环,全局静态列表与本地列表