Kibana 如何在Java中编写自定义的Elasticsearch查询?

7xllpg7q  于 2022-12-09  发布在  Kibana
关注(0)|答案(1)|浏览(196)

这是我在Elasticsearch上的查询,

GET index101/_search
{
  "query": {
    "function_score": {
      "boost_mode": "replace", 
      "query": {
        "constant_score": {
          "filter": {
            "terms": {
              "fields": ["767","434", "101", "222"]
            }
          }
        }
      },
      "pqcode_score": {
             "descriptors": [
              {
            "descriptor": "base64string"
              }
        ],
        "pqparams": {
        "bucket_field": "fields",
        "pqcode_field": "fields2",
        "distance_function": "similarity",
        "model": "random"
        }
      }
    }
  }
}

我查看了Elasticsearch的Java文档,但在Java中找不到任何可以解析此查询的内容。
我创建了一个JSON文件,并在jsonObject中获得了输入查询,然后将其作为参数传递给searchSourceBuilder.query(),但它给出了jsonObject无法转换为QueryBuilder的错误。
我们如何在Java中继续执行此查询?
是否有其他解决方法?

q8l4jmvw

q8l4jmvw1#

看起来pqcode_score是Elasticsearch查询中的自定义键,而您试图在Elasticsearch查询中添加自定义组件/构造,这是不可能的,因此您会收到错误。
您需要在Elasticsearch查询中使用Elasticsearch支持的构造。

相关问题