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))
我有一个多值字段。那么我们如何运行查询这样一个字段呢?
假设 '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))