es 父子查询 排序 java
时间: 2023-11-27 11:49:25 浏览: 104
在 Elasticsearch 中,可以使用父子关系来表示具有层次结构的文档,例如文章和评论。您可以使用 Elasticsearch 的 Java 客户端来执行父子查询和排序。下面是一个例子:
首先,您需要设置父子关系:
```
PUT /my-index
{
"mappings": {
"properties": {
"article_title": {
"type": "text"
},
"comment_text": {
"type": "text"
},
"comment_parent": {
"type": "join",
"relations": {
"article": "comment"
}
}
}
}
}
```
在这个例子中,`comment_parent`字段是一个 `join` 字段,它的关系类型是 `article` 和 `comment`。这表示 `comment` 文档是 `article` 文档的子文档。
接下来,您可以使用父子查询来查询文章和它的子评论:
```
SearchResponse response = client.prepareSearch("my-index")
.setQuery(QueryBuilders.hasParentQuery("article", QueryBuilders.matchQuery("article_title", "elasticsearch")))
.addSort(SortBuilders.fieldSort("comment_text"))
.get();
```
这个查询将返回所有 `article_title` 包含 `elasticsearch` 的父文档,并按照其子评论的 `comment_text` 字段进行排序。
希望这可以帮助您开始使用 Elasticsearch 的父子查询和排序。
阅读全文