[英]ElasticSearch Java Client querying nested objects
如何轉換此類查詢。
{
"query": {
"nested": {
"path": "consultations",
"query": {
"bool": {
"must": [
{
"match": {
"consultations.prescriptions": "alfuorism"
}
},
{
"match": {
"consultations.Diagnosis": "Fever"
}
}
]
}
}
}
}
}
使用QueryBuilders到Java客戶端查詢
下面的Java代碼將生成您的查詢
public NestedQueryBuilder nestedBoolQuery(final Map<String, String> propertyValues, final String nestedPath) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
Iterator<String> iterator = propertyValues.keySet().iterator();
while (iterator.hasNext()) {
String propertyName = iterator.next();
String propertValue = propertyValues.get(propertyName);
MatchQueryBuilder matchQuery = QueryBuilders.matchQuery(propertyName, propertValue);
boolQueryBuilder.must(matchQuery);
}
return QueryBuilders.nestedQuery(nestedPath, boolQueryBuilder);
}
參數propertyValues
是:
Map<String, String> propertyValues = new HashMap<String, String>();
propertyValues.put("consultations.prescriptions", "alfuorism");
propertyValues.put("consultations.Diagnosis", "Fever");
參數nestedPath
是:
consultations
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.