当前位置: 首页 > news >正文

连云港网站关键词优化/成都网站seo

连云港网站关键词优化,成都网站seo,网站建设便宜的公司,网站设计问题在许多的情况下,我们做 terms聚合 搜索的时候,我们想得到的是每个桶里满足条件的文档最多的搜索结果。但是有些情况,我们想寻找稀有的术语数量。尽管我们可以把我们的搜索结果按照升序来排序,但是对于很大数据的这种聚合操作很容易…

在许多的情况下,我们做 terms聚合 搜索的时候,我们想得到的是每个桶里满足条件的文档最多的搜索结果。但是有些情况,我们想寻找稀有的术语数量。尽管我们可以把我们的搜索结果按照升序来排序,但是对于很大数据的这种聚合操作很容易造成 unbunded error。在 Elasticsearch 了,Elastic提供了一种叫做 Rare Terms Aggregation 的方法。

它使用了可预测结果的资源高效算法。它是一种聚合,用于识别长系列关键词的尾部的数据,例如文档数较少的字词。从技术角度来看,稀有术语汇总通过维护术语映射以及与每个值关联的计数器来进行。每次识别该术语时,计数器都会增加。如果计数器超过预定义的阈值,则将该术语从map中删除并插入到 cuckoo filter。如果在 cuckoo filter 中找到了该术语,则假定该术语先前已从map中删除,并且是“常见的”。此聚合设计为比替代方案(将terms aggreation的size设置为:MAX_LONG)或通过计数递增排序项聚合(可能会导致 unbounded error)的内存效率更高。

Rare terms aggregation 有多种用例;例如,SIEM 用户经常对罕见事件感兴趣,这些罕见事件有时被怀疑是安全事件的体现。Rare terms aggregation 是Elastic在7.3版本中引入的新功能。

下面我们来用一个具体的例子来讲解。

准备数据

我们首先来下载我们的测试数据:

git clone https://github.com/liu-xiao-guo/best_games_json_data

然后我们通过Kibana把这个数据来导入到我们的Elasticsearch中:

在导入的过程中,我们选择Time field为year,并且指定相应的日期格式:

我们指定我们的索引名字为best_games:

我们可以查看一下一个样本的文档就像是下面的格式一样:

        "_source" : {"global_sales" : 82.53,"year" : 2006,"image_url" : "https://upload.wikimedia.org/wikipedia/en/thumb/e/e0/Wii_Sports_Europe.jpg/220px-Wii_Sports_Europe.jpg","platform" : "Wii","@timestamp" : "2006-01-01T00:00:00.000+08:00","user_score" : 8,"critic_score" : 76,"name" : "Wii Sports","genre" : "Sports","publisher" : "Nintendo","developer" : "Nintendo","id" : "wii-sports-wii-2006"}

我们的这个数据里含有一个 genre 的字段,它表示游戏的种类。

聚合搜索

terms aggregation

为了说明问题,我们先来采用 terms aggregation 的方法,并使用升序的方式来进行查询:

GET best_games/_search
{"size": 0,"aggs": {"normal_genre": {"terms": {"field": "genre","order": {"_count": "asc"}}}}
}

我们可以看到这个结果:

  "aggregations" : {"rare_genre" : {"buckets" : [{"key" : "Strategy","doc_count" : 2},{"key" : "Adventure","doc_count" : 7},{"key" : "Puzzle","doc_count" : 8},{"key" : "Simulation","doc_count" : 18},{"key" : "Fighting","doc_count" : 19}]}}

我们可以看到在 key 为 Strategy 里的文档有两个,而且文档的数值是按照升序的方法来进行排列的。

我们也许觉得这样的方法没有什么问题。它完全满足我们的需求。细心的开发者可以参考Elastic的 Terms aggeration 官方文档,可以看到这样的一段文字:

它的意思是使用升序来进行排序是不建议的一种方法。它会随着文档数量的增加而可能出现错误,特别是多 shard 进行搜索。为了克服这个问题,我们需要使用 Rare terms aggregation。

Rare terms aggregation

我们首先使用如下的命令来查询:

GET best_games/_search
{"size": 0,"aggs": {"rare_genre": {"rare_terms": {"field": "genre","max_doc_count": 1}}}
}

在这里,我们定义了 max_doc_count 为1。max_doc_count 参数用于控制术语可以具有的文档计数的上限。对于 rare terms aggregation 而言,它没有想 terms aggregation 那样有一个 size 的参数来控制返回数值的大小。 这意味着将返回符合max_doc_count 条件的字词。 Rare terms aggregation 以这种方式起作用,以避免困扰术语聚合的升序问题。

但是,这的确意味着如果选择不正确,可以返回大量结果。 为了限制此设置的危险,最大 max_doc_count 为100。

针对我们上面的用例,它返回的结果是:

{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 500,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"rare_genre" : {"buckets" : [ ]}}
}

也就是说所有的文档的数量都是大于1的,没有一个是少于1的。那么如果我们修改这个查询条件为:

GET best_games/_search
{"size": 0,"aggs": {"rare_genre": {"rare_terms": {"field": "genre","max_doc_count": 10}}}
}

那么返回的结果是:

  "aggregations" : {"rare_genre" : {"buckets" : [{"key" : "Strategy","doc_count" : 2},{"key" : "Adventure","doc_count" : 7},{"key" : "Puzzle","doc_count" : 8}]}

这次我们可以看到有三个返回的结果,而且他们的文档的数量都是小于10的。

参考:

【1】https://www.elastic.co/guide/en/elasticsearch/reference/7.3/search-aggregations-bucket-rare-terms-aggregation.html

http://www.lbrq.cn/news/1047313.html

相关文章:

  • 怎样做编辑发到网站/关键词排名查询官网
  • 网站和小程序的区别/百度网盘免费下载
  • 深圳中企动力/成都高薪seo
  • wordpress邮件/郑州seo技术
  • 泉州有专门帮做网站的吗/哈尔滨网络优化推广公司
  • 网站建设编辑工作总结/北京最新疫情情况
  • 漂亮的学校网站模板下载/网站域名在哪里查询
  • 网站的360快照怎么做/今日头条国际军事新闻
  • 网站切片怎么做/网络营销的成功案例分析
  • 网站seo哪家做的好/seo网络贸易网站推广
  • 参与赌博网站建设可判几年/国际新闻界
  • 郑州网站建设 58/qq引流推广软件哪个好
  • 华春建设工程项目管理有限公司网站/seo诊断站长
  • 郑州外贸网站建设商家/免费域名服务器
  • 济南专门做网站的公司/友情链接导航
  • 无锡好的网站公司/舆情监控系统
  • 国产crm系统/seo优化专员招聘
  • 有什么国外的设计网站推荐/20个排版漂亮的网页设计
  • h5是动态网站吗/软文写作案例
  • 建设网站的价格分析/温州seo优化
  • wordpress菜单调用/常德seo
  • 大良建网站/打开百度网址
  • wordpress 私密文章/整站seo排名外包
  • 慈溪网站设计/竞价推广账户竞价托管收费
  • 优秀网站首页设计/网店营销策略有哪些
  • 佛山网站建设是哪个/安卓aso优化排名
  • 做网站教程百度云/广州百度seo优化排名
  • 怎么做兼职网站吗/百度应用市场下载安装
  • 内网 wordpress慢/网站优化推广的方法
  • 算命网站怎么做/网站关键词优化价格
  • 【RocketMQ 生产者和消费者】- ConsumeMessageOrderlyService 顺序消费消息
  • 《励曼旋耕》Liman Rotary Tillage
  • C++虚函数表实现机制以及用C语言对其进行的模拟实现(加入了自己的思考和笔记)
  • 复现论文关于3-RPRU并联机器人运动学建模与参数优化设计
  • 数据结构(一)顺序表
  • 动手学深度学习(pytorch版):第二章节——预备知识(1)——数据操作