バイナリーフィールドタイプ
binary
タイプは、Base64 エンコードされた文字列としてバイナリ値を受け入れます。フィールドはデフォルトでは保存されず、検索可能ではありません:
Python
resp = client.indices.create(
index="my-index-000001",
mappings={
"properties": {
"name": {
"type": "text"
},
"blob": {
"type": "binary"
}
}
},
)
print(resp)
resp1 = client.index(
index="my-index-000001",
id="1",
document={
"name": "Some binary blob",
"blob": "U29tZSBiaW5hcnkgYmxvYg=="
},
)
print(resp1)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
mappings: {
properties: {
name: {
type: 'text'
},
blob: {
type: 'binary'
}
}
}
}
)
puts response
response = client.index(
index: 'my-index-000001',
id: 1,
body: {
name: 'Some binary blob',
blob: 'U29tZSBiaW5hcnkgYmxvYg=='
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
mappings: {
properties: {
name: {
type: "text",
},
blob: {
type: "binary",
},
},
},
});
console.log(response);
const response1 = await client.index({
index: "my-index-000001",
id: 1,
document: {
name: "Some binary blob",
blob: "U29tZSBiaW5hcnkgYmxvYg==",
},
});
console.log(response1);
コンソール
PUT my-index-000001
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"blob": {
"type": "binary"
}
}
}
}
PUT my-index-000001/_doc/1
{
"name": "Some binary blob",
"blob": "U29tZSBiaW5hcnkgYmxvYg=="
}
Base64 エンコードされたバイナリ値には埋め込まれた改行があってはなりません \n . |
バイナリーフィールドのパラメータ
binary
フィールドで受け入れられるパラメータは次のとおりです:
doc_values |
フィールドはディスクにカラムストライド方式で保存され、後でソート、集計、またはスクリプトに使用できるようにする必要がありますか? true を受け入れます。 false (デフォルト)も受け入れます。このパラメータは、TSDB インデックスのために自動的に true に設定されます。( index.mode が time_series に設定されているインデックス)。 |
store |
フィールド値は、_source フィールドとは別に保存および取得可能であるべきですか? true または false (デフォルト)を受け入れます。 |
合成 _source
合成 _source
は、一般的に TSDB インデックス(index.mode
が time_series
に設定されているインデックス)のみで利用可能です。他のインデックスでは、合成 _source
は技術プレビュー中です。技術プレビュー中の機能は、将来のリリースで変更または削除される可能性があります。Elastic は問題を修正するために取り組みますが、技術プレビュー中の機能は公式 GA 機能のサポート SLA の対象ではありません。
binary
フィールドは、_source
をサポートしますが、doc_values
が有効になっている場合のみです。合成ソースは常に binary
値をそのバイト表現の順序でソートします。例えば:
Python
resp = client.indices.create(
index="idx",
mappings={
"_source": {
"mode": "synthetic"
},
"properties": {
"binary": {
"type": "binary",
"doc_values": True
}
}
},
)
print(resp)
resp1 = client.index(
index="idx",
id="1",
document={
"binary": [
"IAA=",
"EAA="
]
},
)
print(resp1)
Ruby
response = client.indices.create(
index: 'idx',
body: {
mappings: {
_source: {
mode: 'synthetic'
},
properties: {
binary: {
type: 'binary',
doc_values: true
}
}
}
}
)
puts response
response = client.index(
index: 'idx',
id: 1,
body: {
binary: [
'IAA=',
'EAA='
]
}
)
puts response
Js
const response = await client.indices.create({
index: "idx",
mappings: {
_source: {
mode: "synthetic",
},
properties: {
binary: {
type: "binary",
doc_values: true,
},
},
},
});
console.log(response);
const response1 = await client.index({
index: "idx",
id: 1,
document: {
binary: ["IAA=", "EAA="],
},
});
console.log(response1);
コンソール
PUT idx
{
"mappings": {
"_source": { "mode": "synthetic" },
"properties": {
"binary": { "type": "binary", "doc_values": true }
}
}
}
PUT idx/_doc/1
{
"binary": ["IAA=", "EAA="]
}
コンソール-結果
{
"binary": ["EAA=", "IAA="]
}