支持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)
其主要功能是:
-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)):
在搜索时,您还可以查看response.results,
以获取hitcollection,它是一个可重复命中的对象。
results=response.results
对于命中结果:
打印%s:%s%(hit.source.title,hit.score)
hit objects
hit对象是普通的python对象,它们在生成的json上为您提供对象表示法。
为了方便起见,它们还允许您在不使用uderscore的情况下获取'''.'属性,例如:
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)