spring-boot - Spring数据elasticsearchQuery等价于HasChildQuery
问题描述
{
"query": {
"bool": {
"must": [
{
"match": {
"Id": "xxxxxx"
}
},
{
"has_child": {
"type": "component",
"query": {
"bool": {
"should": [
{
"term": {
"type": "xxxxx"
}
},
{
"term": {
"name": "xxxxx"
}
}
]
}
},
"inner_hits": {}
}
}
]
}
}
}
想要使用 Criteria 或 NativeSearchQueryBuilder 替换上述查询。我已经尝试关注它并长时间搜索。
QueryBuilder parentQuery = QueryBuilders.matchQuery("Id", Id);
HasChildQueryBuilder childQuery = JoinQueryBuilders.hasChildQuery("component",
QueryBuilders.termQuery("type","xxxxx"), ScoreMode.None);
HasChildQueryBuilder childQuery2 = JoinQueryBuilders.hasChildQuery("component",
QueryBuilders.termQuery("name","xxxxx"), ScoreMode.None);
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(parentQuery)
.withQuery(childQuery).withQuery(childQuery2).build();
SearchHits<ENTITY> recipeSearchHits= elasticsearchOperations.search(query, ENTITY.class);
遵循官方弹簧数据文档https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.jointype但我在这里做错了,所以它继续循环。
解决方案
推荐阅读
- r - 使用 DocumentTermMatrix() 的更多停用词
- try-catch - 使用没有 catch 和没有 finally 的 Try
- c# - 内容处置 - 在邮件标头中发现无效字符:'['
- sql - SQL 添加额外的行直到日期(YYYYMMDD)列匹配
- opengl - OpenGL 轴约定
- php - PHP正则表达式将一个字符串分成两个
- opencv - 在低分辨率图像中查找图案的旋转
- javascript - 有没有办法知道是否有人在 Discord.js 的频道中连续发送了 2 条消息?
- ansible - 需要帮助过滤来自 RAW 模块的输出
- html - 小分辨率下的错误元素放置