[英]Elastic search queries with Java api
當找到一個與該值匹配的對象返回整個嵌套對象時,我現在如何只用我的代碼返回匹配的對象?
private def queryBuilder(
field: String,
value: String,
parent: Option[String] = None
): BoolQueryBuilder = {
val boolQuery: BoolQueryBuilder = QueryBuilders.boolQuery()
parent match {
case Some(parentName) =>
boolQuery.filter(
QueryBuilders
.nestedQuery(
parentName,
QueryBuilders
.boolQuery()
.must(QueryBuilders.matchQuery(field, value)),
ScoreMode.None
)
)
case None => boolQuery.must(QueryBuilders.matchQuery(field, value))
}
}
為了僅返回匹配的嵌套文檔,您可以將inner_hit
添加到嵌套查詢中。
例如
{
"query": {
"nested": {
"path": "nested_field",
"query": {
"match": { "nested_field.field1": "value_to_match" }
},
"inner_hits": {}
}
}
}
作為響應,您將找到僅包含匹配嵌套文檔的inner_hits
部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.