有没有办法在我的数据子集中获取字段的语料库大小?换句话说,我想要计算某个领域的所有单词。单词在文档中,满足查询条件。
此信息由术语向量提供。术语向量可以应用于特定文档,但不能应用于多个文档。 Multi-term vectors允许指定文档ID列表,以检索每个文档中每个术语的每个术语矢量统计量。不幸的是它们没有聚合,我必须自己聚合它们。
是否有更灵活的方式来实现汇总的术语统计?我可以使用groovy scripts汇总术语向量吗?
解决方案:
@Val,谢谢你的解决方案。对my_int_value=1
的所有文档的查询如下所示:
GET /index/type/_search?search_type=count
{
"query": {
"filtered": {
"filter": {
"term": {
"my_int_value": 1
}
}
}
},
"aggs" : {
"counting" : {
"sum" : {
"field" : "your_field.word_count"
}
}
}
}
答案 0 :(得分:1)
如果您关心的是字段中的标记/单词数,您还可以在字符串字段中声明token_count
子字段。您的映射将如下所示:
{
"your_type" : {
"properties" : {
"your_field" : {
"type" : "string",
"fields" : {
"word_count": {
"type" : "token_count",
"store" : "yes",
"analyzer" : "standard"
}
}
}
}
}
}
然后在您的查询中,您可以参考your_field.word_count
字段来获取your_field
中可用的令牌/字词数。