_meta field

マッピングタイプには、カスタムメタデータを関連付けることができます。これらはElasticsearchによって全く使用されませんが、ドキュメントが属するクラスなど、アプリケーション固有のメタデータを保存するために使用できます:

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. mappings={
  4. "_meta": {
  5. "class": "MyApp::User",
  6. "version": {
  7. "min": "1.0",
  8. "max": "1.3"
  9. }
  10. }
  11. },
  12. )
  13. print(resp)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. mappings: {
  5. _meta: {
  6. class: 'MyApp::User',
  7. version: {
  8. min: '1.0',
  9. max: '1.3'
  10. }
  11. }
  12. }
  13. }
  14. )
  15. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. mappings: {
  4. _meta: {
  5. class: "MyApp::User",
  6. version: {
  7. min: "1.0",
  8. max: "1.3",
  9. },
  10. },
  11. },
  12. });
  13. console.log(response);

Console

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "_meta": {
  5. "class": "MyApp::User",
  6. "version": {
  7. "min": "1.0",
  8. "max": "1.3"
  9. }
  10. }
  11. }
  12. }
この _meta 情報は、
GET mapping APIを使用して取得できます。

_meta フィールドは、update mapping APIを使用して既存のタイプで更新できます:

Python

  1. resp = client.indices.put_mapping(
  2. index="my-index-000001",
  3. meta={
  4. "class": "MyApp2::User3",
  5. "version": {
  6. "min": "1.3",
  7. "max": "1.5"
  8. }
  9. },
  10. )
  11. print(resp)

Ruby

  1. response = client.indices.put_mapping(
  2. index: 'my-index-000001',
  3. body: {
  4. _meta: {
  5. class: 'MyApp2::User3',
  6. version: {
  7. min: '1.3',
  8. max: '1.5'
  9. }
  10. }
  11. }
  12. )
  13. puts response

Js

  1. const response = await client.indices.putMapping({
  2. index: "my-index-000001",
  3. _meta: {
  4. class: "MyApp2::User3",
  5. version: {
  6. min: "1.3",
  7. max: "1.5",
  8. },
  9. },
  10. });
  11. console.log(response);

Console

  1. PUT my-index-000001/_mapping
  2. {
  3. "_meta": {
  4. "class": "MyApp2::User3",
  5. "version": {
  6. "min": "1.3",
  7. "max": "1.5"
  8. }
  9. }
  10. }