白话Elasticsearch61-进阶篇之基于Term Vectors深入探查数据的情况

2021-08-17 09:47:32 浏览数 (3)


概述

继续跟中华石杉老师学习ES,第61篇

课程地址: https://www.roncoo.com/view/55


官网

Term Vectors: 戳这里

概括来说:Term Vectors就是 获取document中的某个field内的各个term的统计信息


Term information

主要包含以下几个信息: term frequency in the field, term positions, start and end offsets, term payloads


Term statistics

设置term_statistics=true 后将返回:

  • total term frequency, 一个term在所有document中出现的频率;
  • document frequency,有多少document包含这个term

Field statistics

  • document count: 有多少document包含这个field;
  • sum of document frequency:一个field中所有term的df之和;
  • sum of total term frequency:一个field中的所有term的tf之和

Terms filtering

代码语言:javascript复制
GET /my_index/my_type/_termvectors
{
  "doc" : {
    "fullname" : "Leo Li",
    "text" : "hello test test test"
  },
  "fields" : ["text"],
  "offsets" : true,
  "payloads" : true,
  "positions" : true,
  "term_statistics" : true,
  "field_statistics" : true,
  "filter" : {
      "max_num_terms" : 3,
      "min_term_freq" : 1,
      "min_doc_freq" : 1
    }
}

这个就是说,根据term统计信息,过滤出你想要看到的term vector统计结果 也挺有用的,比如你探查数据把,可以过滤掉一些出现频率过低的term,就不考虑了 .


Behaviour

term statistics和field statistics并不精准,被删除了的doc不会被考虑.


示例


总结

其实Term Vectors很少用,用的时候,一般来说,就是你需要对一些数据做探查的时候。比如说,你想要看到某个term,某个词条比如“xxxx”,这个词条,在多少个document中出现了。或者说某个field 比如 film_desc(电影的说明信息),有多少个doc包含了这个说明信息。

0 人点赞