【发布时间】:2021-07-07 12:35:55
【问题描述】:
我有一个 JSON 格式的弹性搜索查询(如下所述),我正在从数据库中读取它,我必须在 Java spring 程序中更新这个查询。如何将 JSON 查询对象转换为 QueryBuilder 对象,以便在执行它之前对其进行操作以获取命中?
{
"query": {
"bool": {
"must_not": [
{
"match": {
"after.values": {
"query": "Beach Soccer",
"operator": "and"
}
}
},
{
"match": {
"after.values": {
"query": "Football",
"operator": "and"
}
}
}
],
"should": [
{
"match": {
"after.values": "Australian Open"
}
},
{
"match": {
"after.values": "Golf Austra"
}
},
{
"match": {
"after.values": "Australasia"
}
}
]
}
}
}
和How to construct QueryBuilder from JSON DSL when using Java API in ElasticSearch?一样的问题
但是选择作为答案的解决方案不再有效。
我在 2021 年遇到了与 @armstrongya 完全相同的问题,并且正在做 QueryBuilders.wrapperQuery(jsonQueryString);
不是给我剪的。
这就是我得到的:
{ “包装”:{ “查询”: “eyJib29sIjp7Im11c3Rfbm90IjpbeyJtYXRjaCI6eyJhZnRlci50aXRsZSI6eyJxdWVyeSI6IldpbWJlbGRvbiIsIm9wZXJhdG9yIjoiYW5kIn19fSx7Im1hdGNoIjp7ImZpZWxkLmRlc2NyaXB0aW9uIjp7InF1ZXJ5IjoiV2ltYmVsZG9uIiwib3BlcmF0b3IiOiJhbmQifX19LHsibWF0Y2giOnsiYWZ0ZXIudGl0bGUiOnsicXVlcnkiOiJXVEEiLCJvcGVyYXRvciI6ImFuZCJ9fX0seyJtYXRjaCI6eyJmaWVsZC5kZXNjcmlwdGlvbiI6eyJxdWVyeSI6IldUQSIsIm9wZXJhdG9yIjoiYW5kIn19fV19fQ ==”} P>
【问题讨论】:
标签: java json elasticsearch