elastic4s:查询多值字段

elastic4s: Querying a multivalued field

我有一个多值字段。那么我们如何运行查询这样一个字段呢?

假设 'Bank' 文档有一个字段 'city' 表示存在 cities bank。

如果我必须获取一个组中任一城市的所有银行,什么样的查询会有帮助?

我尝试了 matchQuery 但它给出了错误:

def searchByCities(cities: Seq[String]) = {
    client.execute {
      search("bank").matchQuery("cities", cities) 
    }.await
  }

错误:

{"error":{"root_cause":[{"type":"parsing_exception","reason":"[match] unknown token [START_ARRAY] after [query]","line":1,"col":43}],"type":"parsing_exception","reason":"[match] unknown token [START_ARRAY] after [query]","line":1,"col":43},"status":400}

假设你的城市被索引为关键字,你可以使用术语查询。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html

我自己没有用过elastic4s,但是如果我理解正确的话,语法应该是这样的:

search("bank").query(termsQuery("cities", cities))