ElasticSearch入门

Elasticsearch-py 2.3版本的API翻译文档

2019-02-20  本文已影响39人  她渐渐地笑了

参考资料

Elasticsearch

API Documentation

Global options

一、Ignore

如果elasticsearch返回2XX响应,则API调用被视为成功(并将返回响应)。否则,将引发TransportError(或更具体的子类)的实例。您可以在“Exception”中查看其他异常和错误状态。如果您不希望引发异常,则始终可以使用应忽略的单个状态代码或其列表传递ignore参数:

from elasticsearch import Elasticsearch
es = Elasticsearch()

# ignore 400 cause by IndexAlreadyExistsException when creating an index
es.indices.create(index='test-index', ignore=400)

# ignore 404 and 400
es.indices.delete(index='test-index', ignore=[400, 404])

二、Timeout

在构造客户端时可以设置全局超时(请参阅Connection的超时参数),或者在每个请求的基础上使用request_timeout(浮点值,以秒为单位)作为任何API调用的一部分来设置全局超时,此值将传递给执行的perform_request方法。

# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

三、Response Filtering

filter_path参数用于减少elasticsearch返回的响应。例如,要仅返回_id和_type,请执行以下操作:

es.search(index='test-index', filter_path=['hits.hits._id', 'hits.hits._type'])

它还支持*通配符以匹配字段名称的任何字段或部分:

es.search(index='test-index', filter_path=['hits.hits._*'])

Elasticsearch

class elasticsearch.Elasticsearch(hosts=None, transport_class=<class 'elasticsearch.transport.Transport'>, **kwargs)

Elasticsearch低级客户端。提供从Python到ES REST端点的直接映射。该实例具有属性cat,cluster,indices,nodes和snapshot,分别提供对CatClient,ClusterClient,IndicesClient,NodesClient和SnapshotClient实例的访问。这是访问这些类及其方法的首选(也是唯一受支持的)方式。您可以通过提供connection_class参数来指定应该使用的自己的连接类:

# create connection to localhost using the ThriftConnection
es = Elasticsearch(connection_class=ThriftConnection)

如果你想打开嗅探,你有几个选项(在Transport中描述):

# create connection that will automatically inspect the cluster to get
# the list of active nodes. Start with nodes running on 'esnode1' and
# 'esnode2'
es = Elasticsearch(
    ['esnode1', 'esnode2'],
    # sniff before doing anything
    sniff_on_start=True,
    # refresh nodes after a node fails to respond
    sniff_on_connection_fail=True,
    # and also every 60 seconds
    sniffer_timeout=60
)

不同的主机可以有不同的参数,每个节点使用一个字典来指定:

# connect to localhost directly and another node using SSL on port 443
# and an url_prefix. Note that ``port`` needs to be an int.
es = Elasticsearch([
    {'host': 'localhost'},
    {'host': 'othernode', 'port': 443, 'url_prefix': 'es', 'use_ssl': True},
])

如果使用SSL,有几个参数可以控制我们处理证书的方式(有关选项的详细说明,请参阅Urllib3HttpConnection):

es = Elasticsearch(
    ['localhost:443', 'other_host:443'],
    # turn on SSL
    use_ssl=True,
    # make sure we verify SSL certificates (off by default)
    verify_certs=True,
    # provide a path to CA certs on disk
    ca_certs='/path/to/CA_certs',
    # PEM formatted SSL client certificate
    client_cert='/path/to/clientcert.pem',
    # PEM formatted SSL client key
    client_key='/path/to/clientkey.pem'
)

或者,您可以使用RFC-1738格式的URL,只要它们与其他选项不冲突:

es = Elasticsearch(
    [
        'http://user:secret@localhost:9200/',
        'https://user:secret@other_host:443/production'
    ],
    verify_certs=True
)
parameters explain
hosts 我们应该连接的节点列表。节点应该是一个字典({“host”:“localhost”,“port”:9200}),整个字典将作为kwargs传递给Connection类,或者是一个主机[:port]格式的字符串, 被自动翻译成字典。如果没有给出值,将使用Urllib3HttpConnection类的默认值。
transport_class Transport 的子类被使用。
kwargs 任何其他参数将传递给Transport类,并随后传递给Connection实例。
bulk(*args, **kwargs)

在单个API调用中执行许多索引/删除操作。

parameters explain
body 操作定义和数据(动作 - 数据对),由换行符分隔
index 不提供一个项目的默认索引
doc_type 未提供一个项目的默认文档类型
consistency 操作的显式写一致性设置,有效选择是:'one','quorum','all'
fields 要在更新响应中返回的默认逗号分隔的字段列表
refresh Refresh the index after performing the operation
routing 具体路由值
timeout 显式操作超时
clear_scroll(*args, **keargs)

清除通过指定要搜索的滚动参数创建的滚动请求。

parameters explain
scroll_id 要清除的以逗号分隔的滚动ID列表
body 以逗号分隔的滚动ID列表,如果没有通过scroll_id参数指定,则清除它们
count(*args, **kwargs)

执行查询并获取该查询的匹配数。

parameters explain
index 以逗号分隔的索引列表,用于限制结果
doc_type 以逗号分隔的类型列表,用于限制结果
body 用于限制使用Query DSL指定的结果的查询(可选)
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
analyze_wildcard 指定是否应分析通配符和前缀查询(默认值:false)
analyzer 用于查询字符串的分析器
default_operator 查询字符串查询(AND或OR)的默认运算符,默认为“OR”,有效选项为:'AND','OR'
df 要用作默认值的字段,其中查询字符串中未给出字段前缀
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选择为:'open','closed','none','all'
ignore_unavailable 是否应该忽略指定的具体索引(丢失或关闭)
lenient 指定是否应忽略基于格式的查询失败(例如向数字字段提供文本)
lowercase_expanded_terms 指定查询字词是否应该是小写的
min_score 仅包括结果中具有特定_score值的文档
preference 指定应对其执行操作的节点或分片(默认值:随机)
q 查询Lucene查询字符串语法
routing 具体路由值
count_percolate(*args, **kwargs)

过滤器允许针对索引注册查询,然后发送包含doc的percolate请求,并从注册查询集中获取与该doc匹配的查询。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-percolate.html

parameters explain
index 被计数的文件索引被渗透。
doc_type 被计数过滤的文档类型。
id 使用指定id已知的文档替换请求正文中的文档。在id的顶部,index和type参数将用于从集群中检索文档。
body 使用渗透DSL的计数过滤器请求定义
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
percolate_index 计算文档渗透的计数索引。默认为index。
percolate_type 将percolate文档计入的类型。默认为type。
preference 指定应对其执行操作的节点或分片(默认值:随机)
routing 以逗号分隔的特定路由值列表
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
create(*args, **kwargs)

在特定索引中添加类型化的JSON文档,使其可搜索。在幕后这个方法调用index(...,op_type ='create')

http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html

parameters explain
index 索引的名称
doc_type 文档的类型
body 文件
id 文档ID
consistency 操作的显式写一致性设置,有效选择是:'one','quorum','all'
op_type 显式操作类型,默认'index',有效选择是:'index','create'
parent 父文档的ID
refresh 执行操作后刷新索引
routing 特定的路由值
timeout 显式操作超时
timestamp 文档的显式时间戳
ttl 文档的到期时间
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external', 'external_gte’, 'force’
delete(*args, **kwargs)

根据ID,从特定索引中删除类型化的JSON文档。

parmeters explain
index 索引的名称
doc_type 文档的类型
id 文档ID
consistency 操作的特定写一致性设置,有效选择是:'one','quorum','all'
parent 父文档的ID
refresh 执行操作后刷新索引
routing 特定的路由值
timeout 显式操作超时
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
delete_script(*args, **kwargs)

从elasticsearch中删除存储的脚本。
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

parmeters explain
lang 脚本语言
id 脚本ID
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
delete_template(*args, **kwargs)

删除搜索模板。
http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html

parmeters explain
id 模板ID
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
exists(*args, **kwargs)

返回一个布尔值,指示Elasticsearch中是否存在给定文档。
http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html

parmeters explain
index 索引的名称
doc_type 文档的类型(使用_all获取与所有类型的ID匹配的第一个文档)
id 文档ID
parent 父文档的ID
preference 指定应对其执行操作的节点或分片(默认值:随机)
realtime 指定是以实时还是搜索模式执行操作
refresh 在执行操作之前刷新包含文档的分片
routing 特定的路由值
Note
文档不存在时会提示 HEAD /internal_data/xxx/xxxxxxxxxx [status:404 request:0.004s]
explain(*args, **kwargs)

explain api计算查询和特定文档的分数说明。无论文档是否与特定查询匹配,这都可以提供有用的反馈。
http://www.elastic.co/guide/en/elasticsearch/reference/current/search-explain.html

parameters explain
index 索引的名称
doc_type 文档的类型
id 文档ID
body 使用Query DSL的查询定义
_source 返回_source字段的true或false,或返回的字段列表
_source_exclude 要从返回的_source字段中排除的字段列表
_source_include 从_source字段中提取和返回的字段列表
analyze_wildcard 指定是否应分析查询字符串查询中的通配符和前缀查询(默认值:false)
analyzer 查询字符串查询的分析器
default_operator 查询字符串查询的默认运算符(AND或OR),默认为'OR',有效选项为:'AND','OR'
df 查询字符串查询的默认字段(默认值:_all)
fields 要在响应中返回的以逗号分隔的字段列表
lenient 指定是否应忽略基于格式的查询失败(例如向数字字段提供文本)
lowercase_expanded_terms 指定查询字词是否应该是小写的
parent 父文档的ID
preference 指定应对其执行操作的节点或分片(默认值:随机)
q 查询Lucene查询字符串语法
routing 特定的路由值
field_stats(*args, **kwargs)

字段统计api允许人们在不执行搜索的情况下查找字段的统计属性,但查找Lucene索引中本机可用的度量。

parameters explain
index 以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作
body 包含名称的字段json对象和可选的过滤索引结果的范围,其结果超出定义的边界
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
fields 以逗号分隔的字段列表,用于获取(最小值,最大值等)的字段统计信息
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
level 定义是否应在每个索引级别或群集范围级别上返回字段统计信息,默认为“cluster”,有效选项为:'indices','cluster'
get(*args, **kwargs)

根据ID从索引中获取类型化的JSON文档。
http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html

parameters explain
index 索引的名称
doc_type 文档的类型(使用_all获取与所有类型的ID匹配的第一个文档)
id 文档ID
_source 返回_source字段的true或false,或返回的字段列表
_source_exclude 要从返回的_source字段中排除的字段列表
_source_include 从_source字段中提取和返回的字段列表
fields 要在响应中返回的以逗号分隔的字段列表
parent 父文档的ID
preference 指定应对其执行操作的节点或分片(默认值:随机)
realtime 指定是以实时还是搜索模式执行操作
refresh 在执行操作之前刷新包含文档的分片
routing 特定的路由值
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
get_script(*args, **kwargs)

从API检索脚本。
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

parameters explain
lang 脚本语言
id 脚本ID
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
get_source(*args, **kwargs)

通过它的索引,类型和ID获取文档的 _source 字段。
http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html

parameters explain
index 索引的名称
doc_type 文档的类型;使用_all获取与所有类型的ID匹配的第一个文档
id 文档ID
_source 返回_source字段的true或false,或返回的字段列表
_source_exclude 要从返回的_source字段中排除的字段列表
_source_include 从_source字段中提取和返回的字段列表
parent 父文档的ID
preference 指定应对其执行操作的节点或分片(默认值:随机)
realtime 指定是以实时还是搜索模式执行操作
refresh 在执行操作之前刷新包含文档的分片
routing 特定的路由值
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
get_template(*args, **kwargs)

检索搜索模板。
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

parameters explain
id 模板ID
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
index(*args, **kwargs)

在特定索引中添加或更新类型化的JSON文档,使其可搜索。
http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html

parameters explain
index 索引的名称
doc_type 文档的类型
body 文件
id 文档ID
consistency 操作的显式写一致性设置,有效选择是:'one','quorum','all'
op_type 显式操作类型,默认'索引',有效选择是:'index','create'
parent 父文档的ID
refresh 执行操作后刷新索引
routing 特定的路由值
timeout 显式操作超时
timestamp 文档的显式时间戳
ttl 文档的到期时间
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
info(*args, **kwargs)

从当前群集中获取基本信息。
http://www.elastic.co/guide/

mget(*args, **kwargs)

根据索引,类型(可选)和ID获取多个文档。
http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-get.html

parameters explain
body 文件标识符;可以是docs(包含完整文档信息)或id(当URL中提供索引和类型时)。
index 索引的名称
doc_type 文档的类型
_source 返回_source字段的true或false,或返回的字段列表
_source_exclude 要从返回的_source字段中排除的字段列表
_source_include 从_source字段中提取和返回的字段列表
fields 要在响应中返回的以逗号分隔的字段列表
preference 指定应对其执行操作的节点或分片(默认值:随机)
realtime 指定是以实时还是搜索模式执行操作
refresh 在执行操作之前刷新包含文档的分片
mpercolate(*args, **kwargs)

过滤器允许针对索引注册查询,然后发送包含doc的percolate请求,并从注册查询集中获取与该doc匹配的查询。
http://www.elastic.co/guide/en/elasticsearch/reference/current/search-percolate.html

parameters explain
body percolate请求定义(标题和正文对),由换行符分隔
index 要计数的文档索引作为默认值使用
doc_type 被渗透以用作默认值的文档类型。
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
msearch(*args, **kwargs)

在同一API中执行多个搜索请求。
http://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html

parameters explain
body 请求定义(元数据搜索请求定义对),由换行符分隔
index 要用作默认值的逗号分隔的索引名称列表
doc_type 以逗号分隔的文档类型列表,用作默认值
search_type 搜索操作类型,有效选项为:'query_then_fetch','query_and_fetch','dfs_query_then_fetch','dfs_query_and_fetch','count','scan'
mtermvectors(*args, **kwargs)

multi termvectors API允许基于索引,类型和id获得多个termvectors。http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-termvectors.html

parameters explain
index 文档所在的索引。
doc_type 文档的类型。
body 在此处定义每个文档的ID,文档,参数或参数列表。您必须至少提供文档ID列表。见文档。
field_statistics 指定是否应返回文档计数,文档频率总和以及总术语频率之和。
fields 要返回的以逗号分隔的字段列表。
ids 以逗号分隔的文档ID列表。您必须将id定义为参数或在请求正文中设置“ids”或“docs”
offsets 指定是否应返回术语偏移量。
parent 文档的父ID。
payloads 指定是否应返回术语有效负载。
positions 指定是否应返回期限头寸。除非在正文“params”或“docs”中另有说明,否则适用于所有返回的文档。默认为True
preference 指定应对其执行操作的节点或分片(默认值:random)。适用于所有返回的文档,除非在body“params”或“docs”中另有指定。
realtime 指定请求是实时的而不是近实时的(默认值:true)。
routing 特定的路由值。除非在正文“params”或“docs”中另有说明,否则适用于所有返回的文档。
term_statistics 指定是否应返回总术语频率和文档频率。适用于所有返回的文档,除非在body“params”或“docs”中另有说明。默认为False
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
percolate(*args, **kwargs)

过滤器允许针对索引注册查询,然后发送包含doc的percolate请求,并从注册查询集中获取与该doc匹配的查询。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-percolate.html

parameters explain
index 要渗透的文档的索引。
doc_type 要渗透的文档的类型。
id 使用指定id已知的文档替换请求正文中的文档。在id的顶部,index和type参数将用于从集群中检索文档。
body 使用percolate DSL的过滤器请求定义
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
percolate_format 返回匹配查询ID而不是对象的数组,有效选项为:'ids'
percolate_index 将文档渗透到的索引。默认为索引。
percolate_preference 执行percolate请求时首选的分片。
percolate_routing 渗透现有文档时使用的路由值。
percolate_type 将文档渗透到的类型。默认为键入。
preference 指定应对其执行操作的节点或分片(默认值:随机)
routing 以逗号分隔的特定路由值列表
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
ping(*args, **kwargs)

如果群集已启动,则返回True,否则返回False。http://www.elastic.co/guide/

put_script(*args, **kwargs)

使用指定的ID创建给定语言的脚本。http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

parameters explain
lang 脚本语言
id 脚本ID
body 文档
op_type 显式操作类型,默认'索引',有效选择是:'index','create'
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
put_template(*args, **kwargs)

创建搜索模板。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html

parameters explain
id 模板ID
body 文档
op_type 显式操作类型,默认'索引',有效选择是:'index','create'
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
render_search_template(*args, **kwargs)

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-template.html

parameters explain
id 存储的搜索模板的ID
body 搜索定义模板及其参数
scroll(*args, **kwargs)

滚动通过指定scroll参数创建的搜索请求。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html

parameters explain
scroll_id 滚动ID
body 如果未通过URL或查询参数传递,则为滚动ID。
scroll 指定滚动搜索应保持索引的一致视图的时间长度
search(*args, **kwargs)

执行搜索查询并获取与查询匹配的搜索匹配。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html

parameters explain
index 要搜索的以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作
doc_type 要搜索的以逗号分隔的文档类型列表;留空以对所有类型执行操作
body 使用Query DSL的搜索定义
_source 返回_source字段的true或false,或返回的字段列表
_source_exclude 要从返回的_source字段中排除的字段列表
_source_include 从_source字段中提取和返回的字段列表
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
analyze_wildcard 指定是否应分析通配符和前缀查询(默认值:false)
analyzer 用于查询字符串的分析器
default_operator 查询字符串查询的默认运算符(AND或OR),默认为'OR',有效选项为:'AND','OR'
df 要用作默认值的字段,其中查询字符串中未给出字段前缀
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
explain 指定是否返回有关分数计算的详细信息作为命中的一部分
fielddata_fields 以逗号分隔的字段列表,作为每个匹配的字段的字段数据表示形式返回
fields 以逗号分隔的字段列表,作为匹配的一部分返回
from_ 起始偏移量(默认值:0)
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
lenient 指定是否应忽略基于格式的查询失败(例如向数字字段提供文本)
lowercase_expanded_terms 指定查询字词是否应该是小写的
preference 指定应对其执行操作的节点或分片(默认值:随机)
q 查询Lucene查询字符串语法
request_cache 指定是否应将请求缓存用于此请求,默认为索引级别设置
routing 以逗号分隔的特定路由值列表
scroll 指定滚动搜索应保持索引的一致视图的时间长度
search_type 搜索操作类型,有效选项为:'query_then_fetch','dfs_query_then_fetch','count','scan'
size 要返回的命中数(默认值:10)
sort 以逗号分隔的<field>:<direction>对列表
stats 记录和统计目的请求的特定“标记”
suggest_field 指定用于建议的字段
suggest_mode 指定建议模式,默认'缺失',有效选择是:'缺失','流行','总是'
suggest_size 响应中返回多少建议
suggest_text 应返回建议的源文本
terminate_after 每个分片收集的最大文档数,在达到查询执行将提前终止时。
timeout 显式操作超时
track_scores 即使它们不用于排序,是否计算和返回分数
version 指定是否将文档版本作为匹配的一部分返回
search_exists(*args, **kwargs)

exists API允许轻松确定是否存在所提供查询的匹配文档。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-exists.html

parameters explain
index 用于限制结果的以逗号分隔的索引列表
doc_type 以逗号分隔的类型列表,用于限制结果
body 限制使用Query DSL指定的结果的查询(可选)
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
analyze_wildcard 指定是否应分析通配符和前缀查询(默认值:false)
analyzer 用于查询字符串的分析器
default_operator 查询字符串查询的默认运算符(AND或OR),默认为'OR',有效选项为:'AND','OR'
df 要用作默认值的字段,其中查询字符串中未给出字段前缀
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
lenient 指定是否应忽略基于格式的查询失败(例如向数字字段提供文本)
lowercase_expanded_terms 指定查询字词是否应该是小写的
min_score 仅包括结果中具有特定_score值的文档
preference 指定应对其执行操作的节点或分片(默认值:随机)
q 查询Lucene查询字符串语法
routing 特定的路由值
search_shards(*args, **kwargs)

搜索分片api返回将执行搜索请求的索引和分片。这可以为解决问题或使用路由和分片首选项规划优化提供有用的反馈。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-shards.html

parameters explain
index 要搜索的以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作
doc_type 要搜索的以逗号分隔的文档类型列表;留空以对所有类型执行操作
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
local 返回本地信息,不从主节点检索状态(默认值:false)
preference 指定应对其执行操作的节点或分片(默认值:随机)
routing 特定的路由值
search_template(*args, **kwargs)

接受查询模板和键/值对映射的查询,以填充模板参数。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html

parameters explain
index 要搜索的以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作
doc_type 要搜索的以逗号分隔的文档类型列表;留空以对所有类型执行操作
body 搜索定义模板及其参数
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
preference 指定应对其执行操作的节点或分片(默认值:随机)
routing 以逗号分隔的特定路由值列表
scroll 指定滚动搜索应保持索引的一致视图的时间长度
search_type 搜索操作类型,有效选项为:'query_then_fetch','query_and_fetch','dfs_query_then_fetch','dfs_query_and_fetch','count','scan'
suggest(*args, **kwargs)

建议功能通过使用建议器基于提供的文本建议类似的查找术语。http://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html

parameters explain
body 请求定义
index 用于限制操作的以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作
allow_no_indices 是否忽略通配符索引表达式是否解析为具体索引。(这包括_all字符串或未指定索引时)
expand_wildcards 是否将通配符表达式扩展为打开,关闭或两者的具体索引。默认为“open”,有效选项为:'open','closed','none','all'
ignore_unavailable 当不可用(丢失或关闭)时是否应忽略指定的具体索引
preference 指定应对其执行操作的节点或分片(默认值:随机)
routing 特定的路由值
termvectors(*args, **kwargs)

返回特定文档字段中术语的信息和统计信息。该文档可以存储在索引中或由用户人工提供(在1.4中添加)。请注意,对于存储在索引中的文档,这是一个接近实时的API,因为术语向量在下次刷新之前不可用。http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-termvectors.html

parameters explain
index 文档所在的索引。
doc_type 文档的类型。
id 文档的id,如果未指定,则应提供doc param。
body 定义参数和/或提供文档以获取termvectors。见文档。
dfs 指定是否应返回分布式频率而不是shard频率。,默认为False
field_statistics 指定是否应返回文档计数,文档频率总和以及总术语频率之和。默认为True
fields 要返回的以逗号分隔的字段列表。
offsets 指定是否应返回术语偏移量,默认为True
parent 文档的父ID。
payloads 指定是否应返回术语有效负载。默认为True
positions 指定是否应返回术语位置。,默认为True
preference 指定应对其执行操作的节点或分片(默认值:随机)。
realtime 指定请求是实时的而不是近实时的(默认值:true)。
routing 特定的路由值。
term_statistics 指定是否应返回总术语频率和文档频率。默认为False
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','external','external_gte','force'
update(*args, **kwargs)

根据提供的脚本或部分数据更新文档。http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html

parameters explain
index 索引的名称
doc_type 文档的类型
id 文档ID
body 使用脚本或部分doc的请求定义
consistency 操作的显式写一致性设置,有效选择是:'one','quorum','all'
detect_noop 指定为true将导致Elasticsearch检查是否有更改,如果没有,则将更新请求转换为noop。
fields 要在响应中返回的以逗号分隔的字段列表
lang 脚本语言(默认值:groovy)
parent 父文档的ID。仅用于路由以及何时用于upsert请求
refresh 执行操作后刷新索引
retry_on_conflict 指定发生冲突时应重试操作的次数(默认值:0)
routing 特定的路由值
script URL编码的脚本定义(而不是使用请求主体)
script_id 存储脚本的ID
scripted_upsert 如果应调用脚本或script_id中引用的脚本来执行插入,则为True 默认为false
timeout 显式操作超时
timestamp 文档的显式时间戳
ttl 文档的到期时间
version 并发控制的显式版本号
version_type 特定版本类型,有效选择是:'internal','force'

Exceptions

class elasticsearch.ImproperlyConfigured

传递给客户端的配置不一致或无效时引发的异常。

class elasticsearch.ElasticsearchException

此包的操作引发的所有异常的基类(不适用于ImproperlyConfigured)。

class elasticsearch.SerializationError(ElasticsearchException)

传入的数据无法在正在使用的Serializer中正确序列化。

class elasticsearch.TransportError(ElasticsearchException)

ES返回非OK(> = 400)HTTP状态代码时引发异常。或者发生实际连接错误时;在这种情况下,status_code将设置为“N / A”。

parameters explain
error 字符串错误消息。
info 来自ES的返回错误信息的字典,如果可用的话。
status 引发错误的响应的HTTP状态代码,如果不适用,则为“N / A”。
class elasticsearch.ConnectionError(TransportError)

与ES交谈时出现异常时出错。基础Connection实现的原始异常以.info的形式提供。

class elasticsearch.ConnectionTimeout(ConnectionError)

网络超时。默认情况下不会导致节点重试。

class elasticsearch.SSLError(ConnectionError)

遇到SSL错误时出错。

class elasticsearch.NotFoundError(TransportError)

表示404状态代码的异常。

class elasticsearch.ConflictError(TransportError)

表示409状态代码的异常。

class elasticsearch.RequestError(TransportError)

表示400状态代码的异常。

class elasticsearch.ConnectionError(TransportError)

与ES连接时出现异常时出错。基础Connection实现的原始异常以.info的形式提供。

Connection Layer API

Transport classes

可以使用的传输类列表,只需导入您的选择并将其作为connection_class传递给Elasticsearch的构造函数。请注意,RequestsHttpConnection需要安装 requests。
例如,要使用基于请求的连接,只需导入并使用它:

from elasticsearch import Elasticsearch, RequestsHttpConnection

es = Elasticsearch(connection_class=RequestsHttpConnection)

Connection

class elasticsearch.connection.Connection(host='localhost', port=9200, url_prefix='', timeout=10, **kwargs)

负责维护与Elasticsearch节点的连接的类。它拥有持久连接池,它的主界面(perform_request)是线程安全的。
还负责记录。

parameters explain
host 节点的主机名(默认值:localhost)
port 要使用的端口(整数,默认值:9200)
url_prefix elasticsearch的可选url前缀
timeout 以秒为单位的默认超时(float,默认值:10)

Urllib3HttpConnection

class elasticsearch.connection.Urllib3HttpConnection(host='localhost', port=9200, http_auth=None, use_ssl=False, verify_certs=False, ca_certs=None, client_cert=None, client_key=None, ssl_version=None, ssl_assert_hostname=None, ssl_assert_fingerprint=None, maxsize=10, **kwargs)

使用urllib3库和http协议的默认连接类。

parameters explain
host 节点的主机名(默认值:localhost)
port 要使用的端口(整数,默认值:9200)
url_prefix elasticsearch的可选url前缀
timeout 以秒为单位的默认超时(float,默认值:10)
http_auth 可选的http auth信息,作为':'分隔的字符串或元组
use_ssl 如果为True,则使用ssl进行连接
verify_certs 是否验证SSL证书
ca_certs CA bundle的可选路径。有关如何获取默认设置的说明,请参见http://urllib3.readthedocs.org/en/latest/security.html#using certifi with urllib3
client_cert 包含私钥和证书的文件的路径,或仅在使用client_key时的cert
client_key 如果使用单独的证书和密钥文件,则包含私钥的文件的路径(client_cert将仅包含证书)
ssl_version 要使用的SSL协议的版本。选项包括:SSLv23(默认)SSLv2 SSLv3 TLSv1(有关您环境的确切选项,请参阅ssl模块中的PROTOCOL_ *常量)。
ssl_assert_hostname 如果不是False,则使用主机名验证
ssl_assert_fingerprint 如果不是,则验证提供的证书指纹
maxsize 将保持对此主机开放的最大连接数。

RequestsHttpConnection

class elasticsearch.connection.RequestsHttpConnection(host='localhost', port=9200, http_auth=None, use_ssl=False, verify_certs=False, ca_certs=None, client_cert=None, client_key=None, **kwargs)

使用请求库进行连接。

parameters explain
http_auth 可选的http auth信息,作为':'分隔的字符串或元组。任何值都将作为auth传递给请求。
use_ssl 如果为True,则使用ssl进行连接
verify_certs 是否验证SSL证书
ca_certs CA bundle的可选路径。默认情况下,将使用标准请求的包。
client_cert 包含私钥和证书的文件的路径,或仅在使用client_key时的cert
client_key 如果使用单独的证书和密钥文件,则包含私钥的文件的路径(client_cert将仅包含证书)

Helpers

简单帮助函数的集合,用于抽象一些细节或原始API。

Bulk helpers

批量API有几个帮助程序,因为它需要特定的格式化,如果直接使用,其他注意事项会使它变得很麻烦。
所有批量助手都接受Elasticsearch类的实例和可迭代的 action(任何可迭代的,也可以是生成器,这在大多数情况下是理想的,因为它允许您索引大型数据集而无需将它们加载到内存中)。
action 可迭代中的项应该是我们希望以多种格式索引的文档。最常见的一个与search()返回的相同,例如:

{
   '_index': 'index-name',
   '_type': 'document',
   '_id': 42,
   '_parent': 5,
   '_ttl': '1d',
   '_source': {
       "title": "Hello World!",
       "body": "..."
   }
}

另外,如果_source不存在,它将弹出doc中的所有元数据字段,并将其余部分用作文档数据:

{
   "_id": 42,
   "_parent": 5,
   "title": "Hello World!",
   "body": "..."
}

bulk()api接受 index,create,delete 和 update 操作。使用_op_type字段指定操作(_op_type默认为 index ):

{
   '_op_type': 'delete',
   '_index': 'index-name',
   '_type': 'document',
   '_id': 42,
}
{
   '_op_type': 'update',
   '_index': 'index-name',
   '_type': 'document',
   '_id': 42,
   'doc': {'question': 'The life, universe and everything.'}
}
Note
从文件中读取原始json字符串时,您也可以直接传递它们(不先解码为dicts)。但是,在这种情况下,您无法在每个记录的基础上指定任何内容(索引,类型,甚至ID),所有文档都将被发送到elasticsearch以按原样索引。
elasticsearch.helpers.streaming_bulk(client, actions, chunk_size=500, max_chunk_bytes=104857600, raise_on_error=True, expand_action_callback=<function expand_action>, raise_on_exception=True, **kwargs)

Streaming bulk消耗传入的iterable中的操作,并产生每个操作的结果。对于非流式用例,使用bulk(),它是流式批量的包装器,一旦整个输入被消耗和发送,就会返回有关批量操作的摘要信息。

parameters explain
client 要使用的Elasticsearch实例
actions 包含要执行的操作的iterable
chunk_size 发送给es的一个块中的文档数(默认值:500)
max_chunk_bytes 请求的最大大小(以字节为单位)(默认值:100MB)
raise_on_error 在某些块发生时,从最后一个块的执行中引发包含错误(作为.errors)的BulkIndexError。我们默认 raise。
raise_on_exception 如果为False,则不将异常从调用传播到bulk,只报告失败的项目。
expand_action_callback 对传入的每个操作执行的回调,应返回包含操作行和数据行的元组(如果应省略数据行,则返回None)。
elasticsearch.helpers.parallel_bulk(client, actions, thread_count=4, chunk_size=500, max_chunk_bytes=104857600, expand_action_callback=<function expand_action>, **kwargs)

批量助手的并行版本一次在多个线程中运行。

parameters explain
client 要使用的Elasticsearch实例
actions 包含操作的迭代器
thread_count 用于批量请求的线程池的大小
chunk_size 发送给es的一个块中的文档数(默认值:500)
max_chunk_bytes 请求的最大大小(以字节为单位)(默认值:100MB)
raise_on_error 在某些块发生时,从最后一个块的执行中引发包含错误(作为.errors)的BulkIndexError。我们默认 raise。
raise_on_exception 如果为False,则不将异常从调用传播到bulk,只报告失败的项目。
expand_action_callback 对传入的每个操作执行的回调,应返回包含操作行和数据行的元组(如果应省略数据行,则返回None)。
elasticsearch.helpers.bulk(client, actions, stats_only=False, **kwargs)

bulk()api的助手,它提供了一个更友好的人机界面 - 它消耗了一个 action 迭代器,并将它们以块的形式发送给elasticsearch。它返回一个包含摘要信息的元组 - 成功执行的操作数,如果stats_only设置为True,则显示错误列表或错误数。
有关更多可接受的参数,请参阅streaming_bulk()

parameters explain
client 要使用的Elasticsearch实例
actions 包含操作的迭代器
stats_only 如果为True,则仅报告成功/失败操作的数量,而不仅仅是成功的次数和错误响应列表

任何其他关键字参数将传递给用于执行操作的streaming_bulk()。

Scan

elasticsearch.helpers.scan(client, query=None, scroll=u'5m', raise_on_error=True, preserve_order=False, **kwargs)

在scroll()api之上的简单抽象 - 一个简单的迭代器,它产生由下划线滚动请求返回的所有命中。
默认情况下,扫描不会以任何预定顺序返回结果。要在滚动时在返回的文档中使用标准顺序(通过分数或显式排序定义),请使用preserve_order = True。这可能是一项昂贵的操作,并且会抵消使用扫描的性能优势。

parameters explain
client 要使用的Elasticsearch实例
query 用于search()api的body
scroll 指定滚动搜索应保持索引的一致视图的时间长度
raise_on_error 如果遇到错误(某些分片无法执行),则引发异常(ScanError)。我们默认 raise。
preserve_order 不要将search_type设置为scan,这将导致滚动分页并保留顺序。 请注意,这可能是一项非常昂贵的操作,并且很容易导致不可预测的结果,请谨慎使用。

任何其他关键字参数将传递给初始search()调用:

scan(es,
    query={"query": {"match": {"title": "python"}}},
    index="orders-*",
    doc_type="books"
)

Reindex

elasticsearch.helpers.reindex(client, source_index, target_index, query=None, target_client=None, chunk_size=500, scroll=u'5m', scan_kwargs={}, bulk_kwargs={})

将一个满足给定查询的索引中的所有文档重新索引到另一个索引,可能(如果指定了target_client)在另一个集群上。如果未指定查询,则将重新索引所有文档。

Note
这个帮助器不会传输mappings,只传输数据。
parameters explain
client 要使用的Elasticsearch实例(如果指定了target_client,则为read)
source_index 从中​​读取文档的索引(或索引列表)
target_index 要填充的目标集群中的索引的名称
query 用于search()api的body
target_client 可选,指定将用于写入(从而启用集群之间的重新索引)
chunk_size 发送给es的一个块中的文档数(默认值:500)
scroll 指定滚动搜索应保持索引的一致视图的时间长度
scan_kwargs 要传递给scan()的其他kwargs
bulk_kwargs 要传递给bulk()的其他kwargs
上一篇下一篇

猜你喜欢

热点阅读