gpt4 book ai didi

elasticsearch - IP的前三个八位字节上的术语汇总

转载 作者:行者123 更新时间:2023-12-02 23:28:52 25 4
gpt4 key购买 nike

我正在做一个多方面的搜索UI,我想添加的一个方面是IP字段的前三个八位位组。

因此,例如,给定IP地址为“192.168.1.1”,“192.168.1.2”,“192.168.2.1”的文档,我想显示构面“192.168.1(2)”和“192.168.2(1)” 。

我可以为此使用汇总吗?据我所知,范围聚合要求我预先定义范围,术语聚合仅包含一个字段。

显然,对于我来说,替代方法是将前三个八位位组索引为一个单独的字段,但是我当然希望避免这种情况。

谢谢!

最佳答案

您可以添加分隔符为“。”的路径层次标记器。和一个自定义分析器,其中将标记器设置为您刚刚创建的标记器。

有关语法,请参见以下问题:

Elasticsearch - using the path hierarchy tokenizer to access different level of categories

然后,您可以汇总字词,然后将结果按每个数字组分组

{
"key": "192",
"doc_count": 10
},
{
"key": "192.168",
"doc_count": 10
},
...

在链接的答案中,有一种排除某些聚合级别的方法。下列内容应排除所有结果,但具有3级数字的结果除外。
"aggs": {
"ipaddr": {
"terms": {
"field": "your_ip_addr",
"exclude": ".*",
"include": ".*\\..*\\..*"
}
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pathhierarchy-tokenizer.html

关于elasticsearch - IP的前三个八位字节上的术语汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875605/

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