Spo*_*pot 9 join subquery elasticsearch
我是ElasticSearch的新手,我希望能够对索引进行查询,然后使用结果的一部分来执行另一个查询.
例如,我们有一个tags索引可以查询匹配的标记.该索引包含标识与其关联的内容(挂钩)的存储字段.每种类型的内容都有自己的索引.我需要能够查询标签匹配,并让它不仅返回标签结果,而且还返回title与其关联的内容(不同索引)的存储字段(在本例中).
我遇到了类似的问题.你需要在这里加入.Elasticsearch团队建议使用应用程序端.ES通过在我们的应用程序中实现连接来模拟关系数据库:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/application-joins.html 因此,您可以使用任何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()));
}
}Run Code Online (Sandbox Code Playgroud)
这里函数getMethodResultEntity返回其他get查询的结果.
PS我在这里使用ES java客户端.它有点沉重.如果你需要java客户端,最好使用jest客户端 - 对于简单的情况来说很轻的版本.
| 归档时间: |
|
| 查看次数: |
9418 次 |
| 最近记录: |