3

我刚开始使用 X-Pack for Elasticsearch 并想连接嵌套文档类型的顶点。但是,寻找这方面的文档并没有让我有任何收获。

我所拥有的是一个文档索引,其中包含人名/ID 作为嵌套文档(一个文档可以有很多人,一个人可以与多个文档相关)。期望的结果是获得具有人与人之间联系的图形数据。

有没有人有线索或可以告诉我这是否可能?

我的部分映射:

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

还有我的 Graph API 查询,这当然不起作用,因为我不知道如何处理嵌套的“persons”字段的“name”字段。

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

提前致谢!

4

1 回答 1

0

此处讨论了以下问题: https ://discuss.elastic.co/t/elasticsearch-x-pack-how-to-get-vertices-connections-from-nested-documents/88709

来自 Mark_Harwood - Elastic 团队成员的引述:

不幸的是 Graph 不支持嵌套文档,但您可以在映射中使用 copy_to 将人员数据放入包含根文档的索引字段中。

我可以看到您有“计算机需要 ID,但人们需要标签”的经典问题,并且具有这两个值。在 Graph 中(也可以说是 Kibana 的其余部分),我建议您使用将 ID 组合起来以实现唯一性和名称以供人类阅读的标记。

copy_to 和 IDs-and-labels 技巧是我今年 elasticon 演讲中建模建议的一部分: https ://www.elastic.co/elasticon/conf/2017/sf/getting-your-data-graph-ready 3

于 2019-04-08T10:14:12.403 回答