Я бы сказал, что документ может выглядеть следующим образом
{
...common properties,
"education": {
...education properties
},
"job": {
...job properties
}
}
. Чтобы проиндексировать такой документ, вы можете выполнить следующий запрос (новый индекс, если он еще не существует, будет создан автоматически)
PUT /client/doc/1
{
"firstName": "...",
"lastName": "...",
...other common properties,
"education": {
...education properties
},
"job": {
...job properties
}
}
Где client - имя индекса, doc - тип, а 1 - идентификатор нового документа.
И затем вы можете получить список клиентов (по умолчанию 10), выполнив
GET /client/doc/_search
Для поиска вы можете выполнить (это также вернет максимум 10 документов, так как 10 по умолчанию)
GET /client/doc/_search
{
"query": {
"query_string" : {
"query" : "firstName:university OR lastName:university OR education.field1:university OR education.field1:university",
"default_field" : "content"
}
}
}
Если вы хотите явно указать типы данных для всех или некоторых свойств, обратите внимание на динамическое отображение . В противном случае типы данных по умолчанию будут назначаться на основе значений, таких как «текст» для строковых значений и т. Д.