案例映射
PUT /index{ "mappings": { "doc": { "properties": { "querySearched": { "type": "text", "fielddata": true } } } }}
您的查询应如下所示
GET index/_search{ "size": 0, "aggs": { "result": { "terms": { "field": "querySearched", "size": 10 } } }}
您应该添加
fielddata:true以启用聚集 文本
类型的字段更多的是
"size": 10, => limit to 10
在与@Kamal简短讨论之后,我有义务告诉您,如果选择启用
fielddata:true,则必须知道它会占用大量堆空间。
通过我分享的链接:
字段数据会占用大量堆空间,尤其是在加载高基数的文本字段时。一旦将字段数据加载到堆中,它在该段的生命周期内将一直保留在堆中。同样,加载字段数据是一个昂贵的过程,可能导致用户遇到延迟命中。这就是默认情况下禁用字段数据的原因。
另一种选择(更有效的选择):
PUT /index{ "mappings": { "doc": { "properties": { "querySearched": { "type": "text", "fields": {"keyword": { "type": "keyword", "ignore_above": 256} } } } } }}
然后你的聚合查询
GET index/_search{ "size": 0, "aggs": { "result": { "terms": { "field": "querySearched.keyword", "size": 10 } } }}
两种解决方案都可以,但是您应该考虑这一点。
希望能帮助到你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)