Elasticsearch & X-Pack: как получить вершины/соединения из вложенных документов

Я только начал использовать X-Pack для Elasticsearch и хочу соединить вершины из вложенного типа документа. Однако поиск документации по этому поводу меня никуда не привел.

У меня есть индекс документов, которые имеют имена/идентификаторы людей как вложенные документы (один документ может иметь много людей, один человек может быть связан со многими документами). Желаемый результат — получить данные графа со связями между людьми.

Кто-нибудь знает или может сказать мне, возможно ли это?

Часть моих отображений:

mappings: {
    legend: {
        properties: {
            persons: {
                type: 'nested',
                properties: {
                    id: {
                        type: 'string',
                        index: 'not_analyzed'
                    },
                    name: {
                        type: 'string',
                        index: 'not_analyzed'
                    }
                }
            }
        }
    }
}

И мой запрос Graph API, который, конечно же, не работает, потому что я не знаю, как обрабатывать поле «имя» вложенного поля «лица».

POST sagenkarta_v3/_xpack/_graph/_explore
{
  "controls": {
    "use_significance": true,
    "sample_size": 20000,
    "timeout": 2000
  },
  "vertices": [
    {
      "field": "persons.name"
    }
  ],
  "connections": {
    "vertices": [
      {
        "field": "persons.name"
      }
    ]
  }
}

Заранее спасибо!


person traustid    schedule 08.06.2017    source источник


Ответы (1)


Здесь обсуждался следующий вопрос: https://discuss.elastic.co/t/elasticsearch-x-pack-how-to-get-vertices-connections-from-nested-documents/88709

цитата от Mark_Harwood — член команды Elastic:

К сожалению, Graph не поддерживает вложенные документы, но вы можете использовать copy_to в своих сопоставлениях, чтобы поместить данные человека в индексированное поле в содержащем корневом документе.

Я вижу, что у вас есть классическая проблема «компьютеры-требуют-идентификаторы-но-люди-метки» и у вас есть оба этих значения. В Graph (и, возможно, в остальной части Kibana тоже) я предлагаю вам использовать токены, которые объединяют идентификаторы для уникальности и имена для удобочитаемости людьми.

Советы по copy_to и идентификаторам и меткам являются частью предложений по моделированию в моем выступлении об эластичности в этом году: https://www.elastic.co/elasticon/conf/2017/sf/getting-your-data.-graph-ready 3

person Asaf Bartov    schedule 08.04.2019