gpt4 book ai didi

elasticsearch - 查询返回elasticsearch上的搜索差异

转载 作者:行者123 更新时间:2023-12-03 01:18:24 25 4
gpt4 key购买 nike

以下查询的外观如何:

方案:

我有两个基础(基础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

最佳答案

这可以通过聚合来完成。

  • 从base1和base2索引
  • 收集所有主机名
  • 对于每个主机名,在base2中的出现次数为
  • 仅保留base2计数为0的存储桶
  • 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"
    }
    }
    }
    }
    }
    }

    顺便说一句,不要忘记使用分页来获得其余结果。

    引用文献:
  • https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html
  • https://discuss.elastic.co/t/data-set-difference-between-fields-on-different-indexes/160015/4
  • 关于elasticsearch - 查询返回elasticsearch上的搜索差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61399482/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com