一尘不染

如何在Java的Elasticsearch中知道索引的类型是否具有父或子关系?

elasticsearch

我在 Elasticsearch中* 具有 父子 关系的文档。当我执行 hasParentQueryhasChildQuery时
,我需要知道索引的类型是否具有 父子 关系。使用Java客户端可以实现吗?
* __


阅读 269

收藏
2020-06-22

共1个答案

一尘不染

GetMappingsRequest getRequest = new  GetMappingsRequest().indices("indexname");
GetMappingsResponse cs = client.admin().indices().getMappings(getRequest).get();
ImmutableOpenMap<String, MappingMetaData> mappingStr = cs.mappings().get("indexname");
for (ObjectObjectCursor<String, MappingMetaData> c : mappingStr) {
            Map m = (Map) c.value.getSourceAsMap().get("_parent");
            if (m != null) {
                if (typeName.equals(m.get("type")))
                    types.add(c.key);
            }

}
if(types.size>0){
  return true;
}else{
 return false;
}
2020-06-22