当前位置: 首页 > 面试题库 >

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

徐昊焜
2023-03-14
问题内容

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


问题答案:
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;
}


 类似资料:
  • 问题内容: Book,User和Review说,我正在构建具有复杂模型的应用程序。 评论包含书籍和用户ID。为了能够搜索至少包含一个评论的“图书”,我已将“图书”设置为“评论”的父级,并且具有这样的路由。但是,我还需要找到撰写包含某些短语的评论的用户。 是否可以同时将书和用户作为评论的父级?有没有更好的方法来处理这种情况? 请注意,我无法更改数据建模的方式/不愿意这样做,因为数据已从持久性数据库传

  • 我正在使用elasticsearch elasticsearch-rails的官方gems套件,我在试图索引父/子关系时非常困难,我不确定我的问题是在映射、索引或查询还是在所有这些方面!!所以我不会发布我的代码片段。 是否有以下完整的工作示例: 子索引和父索引的映射 子级和父级的索引/更新/删除 在两个索引上查询高级查询;这意味着我需要用'has_child'查询在父索引上搜索,也需要用'has_

  • 问题内容: 映射: 分行文件: 员工证件: 我想查找具有父ID的文档,我尝试了以下查询: 但是ES没有返回结果。如何在Elasticsearch中搜索具有相同父ID的子文档? 问题答案: 将在OP。有无效是没有叫父在外地类型。 以下是有效查询的示例:

  • 问题内容: 我曾经这样搜索: 但用户包含这样的用户a,b,c: 是第一个索引,是类型。 如何在此查询中增加类型?最好加上示例代码,谢谢。 问题答案: 您可以使用术语查询来增强索引类型。 首先创建一些测试数据(e1,e2,e3是类型,而test是索引名称): 现在将术语查询与按类型自定义增强一起使用: 它将产生如下结果:

  • 问题内容: 我有三个食物类型索引:“意大利”,“西班牙”,“美国”。当用户搜索“奶酪”时,“意大利”文档似乎出现在顶部。如果我偏爱说“西班牙语”,是否可以“增强”结果?(我仍然应该获得意大利语的结果,但是基于索引类型“ Spanish”的一些数值提升值,结果中返回的文档的顺序将优先使用“ Spanish”索引。在用户输入的lucene和/或ES查询? 问题答案: 添加带有字词查询或字段(或两者都有

  • 问题内容: 我有两个索引和。在这些索引中,我具有以下文档类型: : 人 组织机构 角色 技能 : 产品展示 服务 专利 商标 服务标记 每种类型都有不同的字段。 我的问题: 在任何类型的任何字段中,跨一个或什至两个索引查询字符串“ abc”的最佳方法是什么? 我没有在文档中找到任何有助于这种搜索的内容。是否有可能看起来像: 预先感谢您提供的任何帮助。 问题答案: 无论是查询或查询将是你在找什么。