Binary field type
The binary type accepts a binary value as a Base64 encoded string. The field is not stored by default and is not searchable:
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) 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 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=="
} | The Base64 encoded binary value must not have embedded newlines |
Parameters for binary fields
The following parameters are accepted by binary fields:
| Should the field be stored on disk in a column-stride fashion, so that it can later be used for sorting, aggregations, or scripting? Accepts | |
| Whether the field value should be stored and retrievable separately from the |
Synthetic _source
Synthetic _source is Generally Available only for TSDB indices (indices that have index.mode set to time_series). For other indices synthetic _source is in technical preview. Features in technical preview may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.
Synthetic source may sort binary values in order of their byte representation. For example:
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 PUT idx
{
"mappings": {
"_source": { "mode": "synthetic" },
"properties": {
"binary": { "type": "binary", "doc_values": true }
}
}
}
PUT idx/_doc/1
{
"binary": ["IAA=", "EAA="]
} Will become:
{
"binary": ["EAA=", "IAA="]
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/binary.html