Scala 如何在Elastic4s中创建查询

Scala 如何在Elastic4s中创建查询,scala,elastic4s,Scala,Elastic4s,我正在图书馆里实现查询。但我不知道如何为Elasticsearch实现以下Json查询 { "bool": { "must": [ { "match_all": {} }, { "keywordQuery": "hogehoge" } ] } } 我不知道如何实现Json查询的这一部分 { "keywordQuery": "hogehoge"

我正在图书馆里实现查询。但我不知道如何为Elasticsearch实现以下Json查询

 {
    "bool": {
      "must": [
        {
          "match_all": {}
        },
        {
          "keywordQuery": "hogehoge"
        }
      ]
    }
 }
我不知道如何实现Json查询的这一部分

{
  "keywordQuery": "hogehoge"
}
这是我中途实现的代码

boolQuery().must(Seq(matchAllQuery(),query({keywordQuery:hogehoge})))
这是上面代码的输出

{
    "bool": {
      "must": [
        {
          "match_all": {}
        },
        { "queryString": {
            "query": "{keywordQuery": "hogehoge}"
          }
        }
      ]
    }
 }

我想

{
  "keywordQuery": "hogehoge"
}

但实际上

{ "queryString": {
  "query": "{keywordQuery": "hogehoge}"
  }
}

你能帮我吗?

我在ElasticSearch DSL文档中找不到关键字查询的参考,或者-也许你需要一个术语查询

(例如,在Logstash索引“文本”字段中,有一个未分析的子字段名为“.keyword”,因此,如果我执行“关键字查询”,我通常执行termQuery(“field.keyword”,“value))

我认为您不需要包括matchAllQuery(),因为这有点意味着您从完整的结果集开始,因此您可以删除bool并将查询简化为:

{
  "query": {
    "term": {
      "field.keyword": "value"
    }
  }
}
在Elastic4s中,这将是:

client.execute {
   termQuery("field.keyword", "value")
}

谢谢你的回答。我确实误解了我需要的问题。