バイナリーフィールドタイプ

binary タイプは、Base64 エンコードされた文字列としてバイナリ値を受け入れます。フィールドはデフォルトでは保存されず、検索可能ではありません:

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. mappings={
  4. "properties": {
  5. "name": {
  6. "type": "text"
  7. },
  8. "blob": {
  9. "type": "binary"
  10. }
  11. }
  12. },
  13. )
  14. print(resp)
  15. resp1 = client.index(
  16. index="my-index-000001",
  17. id="1",
  18. document={
  19. "name": "Some binary blob",
  20. "blob": "U29tZSBiaW5hcnkgYmxvYg=="
  21. },
  22. )
  23. print(resp1)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. mappings: {
  5. properties: {
  6. name: {
  7. type: 'text'
  8. },
  9. blob: {
  10. type: 'binary'
  11. }
  12. }
  13. }
  14. }
  15. )
  16. puts response
  17. response = client.index(
  18. index: 'my-index-000001',
  19. id: 1,
  20. body: {
  21. name: 'Some binary blob',
  22. blob: 'U29tZSBiaW5hcnkgYmxvYg=='
  23. }
  24. )
  25. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. mappings: {
  4. properties: {
  5. name: {
  6. type: "text",
  7. },
  8. blob: {
  9. type: "binary",
  10. },
  11. },
  12. },
  13. });
  14. console.log(response);
  15. const response1 = await client.index({
  16. index: "my-index-000001",
  17. id: 1,
  18. document: {
  19. name: "Some binary blob",
  20. blob: "U29tZSBiaW5hcnkgYmxvYg==",
  21. },
  22. });
  23. console.log(response1);

コンソール

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "properties": {
  5. "name": {
  6. "type": "text"
  7. },
  8. "blob": {
  9. "type": "binary"
  10. }
  11. }
  12. }
  13. }
  14. PUT my-index-000001/_doc/1
  15. {
  16. "name": "Some binary blob",
  17. "blob": "U29tZSBiaW5hcnkgYmxvYg=="
  18. }
Base64 エンコードされたバイナリ値には埋め込まれた改行があってはなりません \n.

バイナリーフィールドのパラメータ

binary フィールドで受け入れられるパラメータは次のとおりです:

doc_values フィールドはディスクにカラムストライド方式で保存され、後でソート、集計、またはスクリプトに使用できるようにする必要がありますか? true
を受け入れます。false(デフォルト)も受け入れます。このパラメータは、TSDB インデックスのために自動的に true に設定されます。
index.modetime_series に設定されているインデックス)。
store フィールド値は、_source フィールドとは別に保存および取得可能であるべきですか? true または false
(デフォルト)を受け入れます。

合成 _source

合成 _source は、一般的に TSDB インデックス(index.modetime_series に設定されているインデックス)のみで利用可能です。他のインデックスでは、合成 _source は技術プレビュー中です。技術プレビュー中の機能は、将来のリリースで変更または削除される可能性があります。Elastic は問題を修正するために取り組みますが、技術プレビュー中の機能は公式 GA 機能のサポート SLA の対象ではありません。

binary フィールドは、_source をサポートしますが、doc_values が有効になっている場合のみです。合成ソースは常に binary 値をそのバイト表現の順序でソートします。例えば:

Python

  1. resp = client.indices.create(
  2. index="idx",
  3. mappings={
  4. "_source": {
  5. "mode": "synthetic"
  6. },
  7. "properties": {
  8. "binary": {
  9. "type": "binary",
  10. "doc_values": True
  11. }
  12. }
  13. },
  14. )
  15. print(resp)
  16. resp1 = client.index(
  17. index="idx",
  18. id="1",
  19. document={
  20. "binary": [
  21. "IAA=",
  22. "EAA="
  23. ]
  24. },
  25. )
  26. print(resp1)

Ruby

  1. response = client.indices.create(
  2. index: 'idx',
  3. body: {
  4. mappings: {
  5. _source: {
  6. mode: 'synthetic'
  7. },
  8. properties: {
  9. binary: {
  10. type: 'binary',
  11. doc_values: true
  12. }
  13. }
  14. }
  15. }
  16. )
  17. puts response
  18. response = client.index(
  19. index: 'idx',
  20. id: 1,
  21. body: {
  22. binary: [
  23. 'IAA=',
  24. 'EAA='
  25. ]
  26. }
  27. )
  28. puts response

Js

  1. const response = await client.indices.create({
  2. index: "idx",
  3. mappings: {
  4. _source: {
  5. mode: "synthetic",
  6. },
  7. properties: {
  8. binary: {
  9. type: "binary",
  10. doc_values: true,
  11. },
  12. },
  13. },
  14. });
  15. console.log(response);
  16. const response1 = await client.index({
  17. index: "idx",
  18. id: 1,
  19. document: {
  20. binary: ["IAA=", "EAA="],
  21. },
  22. });
  23. console.log(response1);

コンソール

  1. PUT idx
  2. {
  3. "mappings": {
  4. "_source": { "mode": "synthetic" },
  5. "properties": {
  6. "binary": { "type": "binary", "doc_values": true }
  7. }
  8. }
  9. }
  10. PUT idx/_doc/1
  11. {
  12. "binary": ["IAA=", "EAA="]
  13. }

次のようになります:

コンソール-結果

  1. {
  2. "binary": ["EAA=", "IAA="]
  3. }