概述
继续跟中华石杉老师学习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包含了这个说明信息。