elasticsearch - ElasticSearch - 查询以将字符串附加到文档字段中的现有字符串
问题描述
我们所有的 ElasticSearch 文档都包含一个名为的字段,该字段Categories
包含一串以逗号分隔的值。逗号之间的每个值的长度为 5 个字符,该字段可以是 1 到 12 个 5 个字符的值。
我需要对索引运行查询,该索引显示追加,ABCDE
到Categories
所有文档的字段末尾,除非该字段已经包含其中的值ABCDE
,在这种情况下,不要向该字段追加任何内容。
解决方案
您可以使用 ElasticSearch _update_by_query,如下所示
POST my_index/my_type/_update_by_query
{
"query": {
"bool": {
"must_not": [
{
"match": {
"Categories": "ABCDE"
}
}
]
}
},
"script": {
"inline": "ctx._source.Categories += ', ABCDE'",
"lang": "painless"
}
}
', ABCDE'
如果类别不包含该术语,则上述查询将字符串附加到类别ABCDE
推荐阅读
- typescript - 外推缩小类型
- caching - 内存缓存如何充当分布式?
- python-3.x - 如何在烧瓶中处理大型任务
- python - 按卡路里排序 API 结果 + 将结果打印到文件中
- python - MongoDB:使用 MultiPoint $geoIntersects 时获得 1:1 输出
- javascript - 在 list.js 中排除被过滤的项目
- filter - 带有视觉过滤器的测量表上的 dax 测量
- html - (索引):217 未捕获的类型错误:无法读取 null 的属性“innerHTML”
- swift - Firebase、Cloud Firestore - SwiftUI 在视图中显示集合数据
- excel - 如何在 VBA 中使用 Foxit 将 png 文件转换为 pdf