elasticsearch,subquery,Join,elasticsearch,Subquery" /> elasticsearch,subquery,Join,elasticsearch,Subquery" />

Join 如何做一个;加入/&引用;子查询";使用弹性搜索?

Join 如何做一个;加入/&引用;子查询";使用弹性搜索?,join,elasticsearch,subquery,Join,elasticsearch,Subquery,我是ElasticSearch的新手,我希望能够对索引执行查询,然后索引使用结果的一部分执行另一个查询 例如,我们有一个标签索引,可以查询匹配的标签。该索引包含标识其关联(挂钩)内容的存储字段。每种类型的内容都有自己的索引。我需要能够查询标记匹配,并让它不仅返回标记结果,而且从与它相关联的内容(不同索引)返回存储字段(在本例中为title)。你需要加入这里。Elasticsearch团队建议使用应用程序端。ES通过在应用程序中实现连接来模拟关系数据库: 因此,您可以使用任何ES客户端编写类似的内

我是ElasticSearch的新手,我希望能够对索引执行查询,然后索引使用结果的一部分执行另一个查询


例如,我们有一个
标签
索引,可以查询匹配的标签。该索引包含标识其关联(挂钩)内容的存储字段。每种类型的内容都有自己的索引。我需要能够查询标记匹配,并让它不仅返回标记结果,而且从与它相关联的内容(不同索引)返回存储字段(在本例中为
title
)。你需要加入这里。Elasticsearch团队建议使用应用程序端。ES通过在应用程序中实现连接来模拟关系数据库: 因此,您可以使用任何ES客户端编写类似的内容

    SearchResponse response = client.prepareSearch(scriptVersionFirst)
                   .setTypes("yourtype")
                   .setQuery(QueryBuilders.termQuery("multi", "test"))
                   .setFrom(0).setSize(60).setExplain(true)
                   .execute()
                   .actionGet();

    if (response != null) {
        SearchHits hitList = response.getHits();
        if (hitList != null) {
            SearchHit[] hits = hitList.hits();          
            for (SearchHit hit : hits) 
                MethodPojo source = gson.fromJson(hit.getSourceAsString(), MethodPojo.class);
                System.out.println("Found: " + getMethodResultEntity(scriptVersionSecond, hit.getType(), source.getMethodName(), source.getMethodDesc(), source.getRequest()));
            }
        }
这里函数getMethodResultity返回其他get查询的结果


另外,我在这里使用ES java客户端。有点重。如果您需要java客户端,最好使用jest客户端-对于简单的情况,使用更轻的版本。

我想知道是否有办法让elastic search返回连接。如果查看它们,则说明可以将子文档作为搜索请求的结果返回
。我们可以使用ElasticSearch配置单元连接器从ElasticSearch数据存储上的配置单元执行联接操作吗?-我们可以使用ElasticSearch配置单元连接器从ElasticSearch数据存储上的配置单元执行联接操作吗?-可能重复的