検索アナライザーのリロードAPI
インデックスの検索アナライザーとそのリソースをリロードします。データストリームの場合、APIはストリームのバックインデックスの検索アナライザーとリソースをリロードします。
Python
resp = client.indices.reload_search_analyzers(
index="my-index-000001",
)
print(resp)
resp1 = client.indices.clear_cache(
index="my-index-000001",
request=True,
)
print(resp1)
Ruby
response = client.indices.reload_search_analyzers(
index: 'my-index-000001'
)
puts response
response = client.indices.clear_cache(
index: 'my-index-000001',
request: true
)
puts response
Js
const response = await client.indices.reloadSearchAnalyzers({
index: "my-index-000001",
});
console.log(response);
const response1 = await client.indices.clearCache({
index: "my-index-000001",
request: "true",
});
console.log(response1);
コンソール
POST /my-index-000001/_reload_search_analyzers
POST /my-index-000001/_cache/clear?request=true
検索アナライザーをリロードした後、リクエストキャッシュをクリアして、以前のアナライザーのバージョンから派生したレスポンスが含まれないようにする必要があります。
リクエスト
POST /<target>/_reload_search_analyzers
GET /<target>/_reload_search_analyzers
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットデータストリーム、インデックス、またはエイリアスに対して
manage
インデックス権限を持っている必要があります。
説明
リロード検索アナライザーAPIを使用して、検索アナライザーのsynonym_graph
またはsynonym
トークンフィルターで使用される同義語ファイルの変更を反映させることができます。対象となるには、トークンフィルターはupdateable
フラグがtrue
であり、検索アナライザーでのみ使用される必要があります。
このAPIは、インデックスの各シャードのリロードを実行しません。代わりに、インデックスシャードを含む各ノードのリロードを実行します。その結果、APIによって返される総シャード数はインデックスシャードの数と異なる場合があります。
リロードはインデックスシャードを持つすべてのノードに影響を与えるため、このAPIを使用する前に、シャードレプリカを含まないノードを含むクラスター内のすべてのデータノードで同義語ファイルを更新することが重要です。これにより、将来シャードが移動される場合に備えて、クラスター内のすべての場所で同義語ファイルが更新されます。
パスパラメータ
<target>
- (必須、文字列) リクエストを制限するために使用されるデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(
*
)をサポートします。すべてのデータストリームとインデックスをターゲットにするには、*
または_all
を使用します。
クエリパラメータ
allow_no_indices
- (オプション、Boolean)
false
の場合、リクエストは、ワイルドカード式、インデックスエイリアス、または_all
値が欠落または閉じたインデックスのみをターゲットにする場合にエラーを返します。この動作は、リクエストが他のオープンインデックスをターゲットにしている場合でも適用されます。たとえば、foo*,bar*
をターゲットにするリクエストは、foo
で始まるインデックスが存在するが、bar
で始まるインデックスが存在しない場合にエラーを返します。
デフォルトはtrue
です。 expand_wildcards
- (オプション、文字列) ワイルドカードパターンが一致できるインデックスのタイプ。リクエストがデータストリームをターゲットにできる場合、この引数はワイルドカード式が隠しデータストリームと一致するかどうかを決定します。カンマ区切りの値をサポートします。たとえば、
open,hidden
。有効な値は次のとおりです:all
- すべてのデータストリームまたはインデックスに一致します。隠しインデックスも含まれます。隠しインデックス。
open
- オープンで非隠しのインデックスに一致します。非隠しデータストリームにも一致します。
closed
- 閉じた非隠しインデックスに一致します。非隠しデータストリームにも一致します。データストリームは閉じることができません。
hidden
- 隠しデータストリームと隠しインデックスに一致します。
open
、closed
、またはその両方と組み合わせる必要があります。 none
- ワイルドカードパターンは受け入れられません。
デフォルトはopen
です。
ignore_unavailable
- (オプション、Boolean)
false
の場合、リクエストは欠落または閉じたインデックスをターゲットにする場合にエラーを返します。デフォルトはfalse
です。
例
更新可能な同義語フィルターを含む検索アナライザーを持つインデックスを作成するには、インデックス作成APIを使用します。
次のアナライザーをインデックスアナライザーとして使用すると、エラーが発生します。
Python
resp = client.indices.create(
index="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"
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
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'
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "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",
},
},
},
});
console.log(response);
コンソール
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を使用して検索アナライザーをリロードし、ファイルの変更を反映させます。
Python
resp = client.indices.reload_search_analyzers(
index="my-index-000001",
)
print(resp)
Ruby
response = client.indices.reload_search_analyzers(
index: 'my-index-000001'
)
puts response
Js
const response = await client.indices.reloadSearchAnalyzers({
index: "my-index-000001",
});
console.log(response);
コンソール
POST /my-index-000001/_reload_search_analyzers
コンソール-結果
{
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"reload_details": [
{
"index": "my-index-000001",
"reloaded_analyzers": [
"my_synonyms"
],
"reloaded_node_ids": [
"mfdqTXn_T7SGr2Ho2KT8uw"
]
}
]
}