2014-12-31 2 views
0

Я помещаю данные в ES и проверить отображение, которое создается,Как сказать ElasticSearch создавать вложенные поля

Я выполнения этого:

curl -XPOST 'http://localhost:9200/testnested2/type1/0' -d '{ 
    "p1": ["1","2","3","4"], 
    "users" : { 
     "first" : "John", 
     "last" : "Sm11ith" 
    } 
}' 

и это схема она создала :

{ 
    "testnested2":{ 
    "mappings":{ 
     "type1":{ 
      "properties":{ 
      "p1":{"type":"string"}, 
      "users":{ 
       "properties":{ 
       "first":{"type":"string"}, 
       "last":{"type":"string"} 
       } 
      } 
     } 
     } 
    } 
    } 
} 

мне было интересно, если это возможно, чтобы сказать ему, что «пользователи» вложен или я должен создать отображение для себя.

Я хотел бы, что ES может создать Шмо вроде этого:

curl -XPOST http://180.5.5.93:9200/testnested3 -d '{ 
     "settings" : { 
      "number_of_shards" : 1 
     }, 
     "mappings" : { 
     "type1" : { 
      "properties" : { 
       "propiedad1" : { "type" : "string"}, 
       "users" : { 
        "type" : "nested", 
        "include_in_parent": true, 
        "properties": { 
         "first" : {"type": "string" }, 
         "last" : {"type": "string" } 
        } 
       } 
      } 
     } 
     } 
    }' 
+0

«первый» и «последний» вложены в разделе «Пользователи» - это то, что вы хотите? если вы не можете опубликовать пример того, что вы хотите? –

+0

Я отредактировал, действительно, я мог бы сделать это для себя, это не слишком много, мне просто интересно, как автоматизировать эту часть. – Guille

ответ

1

По умолчанию динамического отображения особенность ElasticSearch будет отображать users как object вместо nested.

Если вы хотите, чтобы настроить это поведение, вы должны определить, явно атрибут users в nested либо в:

  • отображение типа1
  • по умолчанию отображение вашего индекса. Таким образом, для любого типа созданного, атрибут users будет установлен автоматически nested (см here для отображения информации по умолчанию)
Смежные вопросы