elasticsearch - elastic4s:查询多值字段
问题描述
我有一个多值字段。那么我们如何为这样的字段运行查询呢?
假设“银行”文档有一个字段“城市”,表示存在城市银行。
如果我必须获取组中任一城市的所有银行,什么样的查询会有所帮助?
我尝试了 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))
推荐阅读
- java - 可聚焦时编辑文本视图 setError()
- java - Spring Boot 控制器对象中的 NullPointerException 错误
- sql - 实体框架快照的缺点
- c# - WPF 错误:40:BindingExpression 路径错误:使用正确的绑定
- typescript - 你能在类型声明中得到准确的当前索引键吗?
- c++ - C++ 中父进程 ID 的父进程
- vba - 在 MS Word 2016 中选择和重新定位和图像
- electron - 电子打印问题
- javascript - 如何从本地存储中存储和检索 html div 元素的位置?
- php - Laravel 响应是 String 而不是 int