elasticsearch - 在弹性搜索查询中填充数组值
问题描述
我的部分弹性搜索查询如下:
"match_phrase":{ "taskId.keyword":{ "query": "" }
我在我的 js 程序中动态设置了 taskId。但是这种结构允许我将其设置为单个 id,因此调用仅获取单个记录。
我的程序中可以有多个任务 ID。所以我想获取一组任务 ID 的记录。
如何构建我的查询?
我可以这样做:
"match_phrase":{"taskId.keyword":{"query": [] }
然后动态设置数组:
....match_phrase['taskId.keyword'] = 动态计算的任务 id 数组
解决方案
您可以使用术语查询来匹配多个 taskId。使用如下查询:
{
"query":{
"terms":{
"taskId.keyword":["taskId1", "taskId2", "taskId3"]
}
}
}
您可以["taskId1", "taskId2", "taskId3"]
在应用程序代码中用动态创建的 taskId 数组替换。
推荐阅读
- laravel - Laravel 7.x 重置密码
- dart - Dart 中的 memcpy 等价物
- css - 使用引导程序的 Angular 8 sidenavbar 无法正常工作
- ios - AVFoundation 如何捕获处理后的视频?
- python-3.x - Python- Bokeh - DataCube - 无法选择任何行并通过回调提取信息
- ios - iPhone 不可用。请重新连接设备
- dns - 如何通过 boost::asio 解析 DNS SRV 记录
- java - java.lang.IllegalStateException:您可以在 POST 中发送表单参数或正文内容,不能同时发送两者
- javascript - 如何将此函数转换为递归函数
- javascript - Bootstrap:从模态设置父窗口中的选择值