重新加载搜索分析器 API
edit重新加载搜索分析器 API
edit重新加载索引的搜索分析器及其资源。 对于数据流,API会重新加载流的支持索引的搜索分析器和资源。
POST /my-index-000001/_reload_search_analyzers POST /my-index-000001/_cache/clear?request=true
重新加载搜索分析器后,您应该清除请求缓存,以确保它不包含从分析器的先前版本派生的响应。
请求
editPOST /
GET /
前提条件
edit-
如果启用了Elasticsearch安全功能,您必须拥有目标数据流、索引或别名的
manage索引权限。
描述
edit您可以使用重新加载搜索分析器 API 来获取对用于 synonym_graph 或 synonym 分词过滤器的同义词文件的更改,这些过滤器用于 搜索分析器。要符合条件,分词过滤器必须具有 updateable 标志为 true,并且仅在搜索分析器中使用。
此API不会为索引的每个分片执行重新加载。 相反, 它会为包含索引分片的每个节点执行重新加载。 因此, API返回的总分片数可能与索引分片的数量不同。
由于重新加载会影响具有索引分片的每个节点,因此在使用此API之前,重要的是要在集群中的每个数据节点上更新同义词文件,包括不包含分片副本的节点。这确保了同义词文件在集群中的任何地方都得到更新,以防将来分片被重新定位。
路径参数
edit-
<target> -
(必需,字符串) 用于限制请求的逗号分隔的数据流、索引和别名列表。支持通配符 (
*)。要针对所有数据流和索引,请使用*或_all。
查询参数
edit-
allow_no_indices -
(可选, 布尔值) 如果为
false,当任何通配符表达式、 索引别名或_all值仅针对缺失或关闭的索引时,请求将返回错误。 即使请求针对其他打开的索引,此行为也适用。例如,如果一个请求针对foo*,bar*,但没有任何索引以bar开头,即使存在以foo开头的索引,请求也会返回错误。默认为
true。 -
expand_wildcards -
(可选,字符串) 通配符模式可以匹配的索引类型。如果请求可以针对数据流,此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如
open,hidden。有效值为:-
all - 匹配任何数据流或索引,包括 隐藏的 数据流和索引。
-
open - 匹配开放的、非隐藏的索引。同时也匹配任何非隐藏的数据流。
-
closed - 匹配关闭的、非隐藏的索引。同时也匹配任何非隐藏的数据流。数据流不能被关闭。
-
hidden -
匹配隐藏的数据流和隐藏的索引。必须与
open、closed或两者结合使用。 -
none - 不接受通配符模式。
默认为
open。 -
-
ignore_unavailable -
(可选,布尔值) 如果为
false,则当请求目标是一个缺失或关闭的索引时,请求将返回错误。默认为false。
示例
edit使用创建索引 API 来创建一个包含可更新同义词过滤器的搜索分析器的索引。
使用以下分析器作为索引分析器会导致错误。
PUT /my-index-000001
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"my_synonyms": {
"tokenizer": "whitespace",
"filter": [ "synonym" ]
}
},
"filter": {
"synonym": {
"type": "synonym_graph",
"synonyms_path": "analysis/synonym.txt",
"updateable": true
}
}
}
}
},
"mappings": {
"properties": {
"text": {
"type": "text",
"analyzer": "standard",
"search_analyzer": "my_synonyms"
}
}
}
}
更新同义词文件后, 使用分析器重新加载API 来重新加载搜索分析器 并获取文件的更改。
POST /my-index-000001/_reload_search_analyzers
API返回以下响应。
{
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"reload_details": [
{
"index": "my-index-000001",
"reloaded_analyzers": [
"my_synonyms"
],
"reloaded_node_ids": [
"mfdqTXn_T7SGr2Ho2KT8uw"
]
}
]
}