java - 有没有办法在 Elastic seach 中连接同一对象之间的属性?
问题描述
我有一个索引,可以根据 id 为我提供配置文件 JSON。在 JSON 中,我有两个不同的对象键,一个键作为具有 address_id 的 primary_address 对象,另一个键作为 Address 对象。地址身份证。我想在两个对象的 address_id 之间添加一个连接来过滤数据。
试过
QueryBuilders.boolQuery().must(QueryBuilders.matchAllQuery())
.filter(QueryBuilders.existsQuery(fieldName))
.filter(QueryBuilders.scriptQuery(new Script("doc['primary_address.id'].value == doc['addresses.addr_id'].value")))
.filter(setQuery);
但它没有获取任何结果。任何指针将不胜感激。
解决方案
此查询有效。您可以尝试单个布尔过滤器查询。
GET your_index/_search
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"source": "doc['f1'].value == doc['f2'].value",
"lang": "painless"
},
"boost": 1
}
}
}
}
}
推荐阅读
- tensorflow - Keras 中的 BatchNormalization
- javascript - ngb-tabset 和动态创建的选项卡
- node.js - 使用 express/node/react 时出现 JSON 错误
- c# - 我的按钮上的 :disabled 属性似乎不起作用
- c - 删除项目 - 哈希表
- c++ - const、span 和迭代器的麻烦
- sql - 您可以在 MS SQL 中使用 Merge 命令运行多个操作吗?
- javascript - Select2 输入框结果不改变背景颜色
- angularjs - 如何在AngularJS中推送新模板,每次都会渲染旧模板
- facebook - Ionic 3 原生 facebook 登录流程