客户端助手
编辑客户端助手编辑
您可以在此处找到一些简单的辅助函数集合,它们抽象了原始 API 的一些细节。有关详细示例,请参阅此页面。
批量助手编辑
批量 API 有几个助手,因为它的特定格式和其他注意事项要求,如果直接使用可能会很麻烦。
所有批量助手都接受 {es}
类实例和可迭代的 action
(任何可迭代对象,也可以是生成器,这在大多数情况下是理想的,因为它允许您索引大型数据集而无需将其加载到内存中)。
可迭代的 action
中的项目应该是我们希望以多种格式索引的文档。最常见的一种与 search()
返回的格式相同,例如
{ '_index': 'index-name', '_id': 42, '_routing': 5, 'pipeline': 'my-ingest-pipeline', '_source': { "title": "Hello World!", "body": "..." } }
或者,如果 _source
不存在,它会从文档中弹出所有元数据字段,并使用其余部分作为文档数据
{ "_id": 42, "_routing": 5, "title": "Hello World!", "body": "..." }
bulk()
api 接受 index
、create
、delete
和 update
操作。使用 _op_type
字段指定操作(_op_type
默认为 index
)
{ '_op_type': 'delete', '_index': 'index-name', '_id': 42, } { '_op_type': 'update', '_index': 'index-name', '_id': 42, 'doc': {'question': 'The life, universe and everything.'} }
扫描编辑
scroll()
API 之上的简单抽象 - 一个简单的迭代器,它产生由底层滚动请求返回的所有匹配结果。
默认情况下,扫描不会以任何预先确定的顺序返回结果。要在滚动时对返回的文档进行标准排序(按分数或显式排序定义),请使用 preserve_order=True
。这可能是一项昂贵的操作,并且会抵消使用 scan
的性能优势。
scan(es, query={"query": {"match": {"title": "python"}}}, index="orders-*" )