客户端助手
编辑客户端助手
编辑您可以在这里找到一些简单的助手函数集合,它们抽象了原始 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-*" )