ファイルシステムキャッシュへのデータのプリロード
これは専門的な設定であり、詳細は将来的に変更される可能性があります。
デフォルトでは、ElasticsearchはI/O操作のキャッシュに完全にオペレーティングシステムのファイルシステムキャッシュに依存しています。 index.store.preload
を設定することで、オペレーティングシステムにホットインデックスファイルの内容を開く際にメモリにロードするよう指示することが可能です。この設定は、カンマ区切りのファイル拡張子のリストを受け入れます:リストに含まれる拡張子を持つすべてのファイルは、開く際にプリロードされます。これは、特にホストオペレーティングシステムが再起動されたときに、ファイルシステムキャッシュが破棄されるため、インデックスの検索パフォーマンスを向上させるのに役立ちます。ただし、データが物理メモリにロードされるまでインデックスが利用可能にならないため、インデックスのオープンが遅くなる可能性があることに注意してください。
この設定は最善の努力に基づくものであり、ストアタイプやホストオペレーティングシステムによっては全く機能しない場合があります。
#### Yaml
``````yaml
index.store.preload: ["nvd", "dvd"]
`
または、インデックス作成時のインデックス設定で:
Python
resp = client.indices.create(
index="my-index-000001",
settings={
"index.store.preload": [
"nvd",
"dvd"
]
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
settings: {
'index.store.preload' => [
'nvd',
'dvd'
]
}
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
settings: {
"index.store.preload": ["nvd", "dvd"],
},
});
console.log(response);
Console
PUT /my-index-000001
{
"settings": {
"index.store.preload": ["nvd", "dvd"]
}
}
デフォルト値は空の配列であり、これはファイルシステムキャッシュに何も積極的にロードされないことを意味します。アクティブに検索されるインデックスについては、["nvd", "dvd"]
に設定することをお勧めします。これにより、ノルムとドキュメント値が物理メモリに積極的にロードされます。これらは、Elasticsearchがランダムアクセスを行うため、最初に確認すべき2つの拡張子です。
ワイルドカードを使用して、すべてのファイルをプリロードすることを示すことができます:index.store.preload: ["*"]
。ただし、特に保存されたフィールドや用語ベクターのファイルをメモリにロードすることは一般的に有用ではないため、["nvd", "dvd", "tim", "doc", "dim"]
に設定する方が良いかもしれません。これにより、ノルム、ドキュメント値、用語辞書、投稿リスト、ポイントがプリロードされ、検索や集計にとってインデックスの最も重要な部分となります。
ベクトル検索を使用する場合、近似k近傍検索を使用する場合は、設定をベクトル検索ファイルに設定することをお勧めします:["vec", "vex", "vem"]
(”vec”はベクトル値に、”vex”はHNSWグラフに、”vem”はメタデータに使用されます)。
この設定は、ホストの主メモリのサイズを超えるインデックスに対して危険である可能性があることに注意してください。これは、大規模なマージ後に再オープンするとファイルシステムキャッシュが破棄され、インデックス作成と検索が遅くなる可能性があります。