以下查询的外观如何:
方案:
我有两个基础(基础1和2),每个基础都有1列,我想看看它们之间的区别,即在基础1中存在的内容在基础2中不存在的情况,将列的虚拟名称视为主机名。
示例:
Base1.Hostname的选定值是否为Base2.Hostname?
YES → DO NOT RETURN
NO → RETURN
我在python中具有以下功能:
def diff(first, second):
second = set (second)
return [item for item in first if item not in second]
示例匹配项等于:
GET /base1/_search
{
"query": {
"multi_match": {
"query": "webserver",
"fields": [
"hostname"
],
"type": "phrase"
}
}
}
我想将此架构迁移到 flex 搜索,以便将来以这些
forecast
的变化频率为基础生成search
最佳答案
这可以通过聚合来完成。
GET base*/_search
{
"size": 0,
"aggs": {
"all": {
"composite": {
"size": 10,
"sources": [
{
"host": {
"terms": {
"field": "hostname"
}
}
}
]
},
"aggs": {
"base2": {
"filter": {
"match": {
"_index": "base2"
}
}
},
"index_count_bucket_filter": {
"bucket_selector": {
"buckets_path": {
"base2_count": "base2._count"
},
"script": "params.base2_count == 0"
}
}
}
}
}
}
顺便说一句,不要忘记使用分页来获得其余结果。
引用文献: