0

次のようなドキュメントを配置した場合:

$ curl -XPOST "http://localhost:9200/test/test/" -d '
{
  "books": {
    "id1": {
        "name": "Hello World!"
    },
    "id2": {
        "name": "Hitchhiker Guide To The Galaxy"
    }
  }
}'

次に、次のようなマッピングを作成します。

$ curl -XGET "http://localhost:9200/test/test/_mapping"
{
  "test":{
    "mappings":{
      "test":{
        "properties":{
          "books":{
            "properties":{
              "id1":{
                "properties":{
                  "name":{
                    "type":"string"
                  }
                }
              },
              "id2":{
                "properties":{
                  "name":{
                    "type":"string"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

「books」オブジェクトのプロパティ/キーは動的であり、マッピングは際限なく拡大します。ES が「books」のキーを見ないようにし、「books」の各値が同じタイプであることを理解させるにはどうすればよいですか? たとえば、マッピングには、書籍 ID ごとに新しいエントリを含めることはできません。

4

1 に答える 1

0

一括アップロードを使用しない限り、一度に保存できるドキュメントは 1 つだけです。1 つのドキュメントは次のようになります。

$ curl -XPOST "http://localhost:9200/test/test/" -d '
{
    "id": "id1",
    "name": "Hello World!"
}'

または:

$ curl -XPOST "http://localhost:9200/test/test/id1" -d '
{
    "name": "Hello World!"
}'
于 2015-10-20T07:25:32.573 に答える