0

我在一个索引中有一个列,其中包含多个国家,我想检查这些国家是否与另一个索引中的列中的国家相似或相同。

就像,在一个索引中,我们有用户指定的国家/地区的用户数据,而在另一个索引中,我们有实际国家/地区的主数据。所以现在我想检查用户输入的国家是否与主数据中的相同。

如果有人知道如何在 Kibana 中为此编写查询,请提供帮助。

GET final,master/_count

{"query": {"bool": {"must": [{"script": {"script":"['A_OPERATINGCOUNTRY'].value == ['AD_Country Name.keyword'].value"}}]}}}
4

2 回答 2

0

您可以使用条款查询

假设我们有一个页面访问日志索引,如下所示:

PUT /mybeat-2018/_doc/1
{
    "host" : "elastic.co",
    "ttl" : 40
}

PUT /mybeat-2018/_doc/2
{
    "host" : "elastic.co",
    "ttl" : 666
}

PUT /mybeat-2018/_doc/3
{
    "host" : "google.com",
    "ttl" : 55
}

和一个可以缩小或增长的独立白名单,有一堆主机:

PUT /whitelist/_doc/1
{
 "hosts" : [
   {
     "name" : "elastic.co"
   },
   {
     "name" : "twitter.com"
   }
 ]
}

然后搜索mybeat-*白名单中的任何内容应该引用白名单文档(在我们的例子中是 id 为 1 的文档),如下所示:

GET /mybeat-*/_search
{
    "query" : {
        "terms" : {
            "host" : {
                "index" : "whitelist",
                "type" : "_doc",
                "id" : "1",
                "path" : "hosts.name"
            }
        }
    }
}
于 2019-09-07T15:55:33.810 回答
0

您需要在 Elasticsearch 之外进行管理。但是,既然传入的数据没有你想要的国家名称,你为什么要在 Elasticsearch 上检查呢?您使用的表单应该具有您想要索引的确切值。

于 2019-09-07T00:34:58.700 回答