重新加载搜索分析器 API

edit

重新加载搜索分析器 API

edit

重新加载索引的搜索分析器及其资源。 对于数据流,API会重新加载流的支持索引的搜索分析器和资源。

POST /my-index-000001/_reload_search_analyzers
POST /my-index-000001/_cache/clear?request=true

重新加载搜索分析器后,您应该清除请求缓存,以确保它不包含从分析器的先前版本派生的响应。

请求

edit

POST //_reload_search_analyzers

GET //_reload_search_analyzers

前提条件

edit
  • 如果启用了Elasticsearch安全功能,您必须拥有目标数据流、索引或别名的manage 索引权限

描述

edit

您可以使用重新加载搜索分析器 API 来获取对用于 synonym_graphsynonym 分词过滤器的同义词文件的更改,这些过滤器用于 搜索分析器。要符合条件,分词过滤器必须具有 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
匹配隐藏的数据流和隐藏的索引。必须与 openclosed 或两者结合使用。
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"
      ]
    }
  ]
}