zoukankan      html  css  js  c++  java
  • 关于ElasticSearch的聚类时出现fielddata=true问题

    https://blog.csdn.net/baristas/article/details/78974090

     
    在ElasticSearch中默认fielddata默认是false的,因为开启Text的fielddata后对内存的占用很高
    index:megacorp
    type:employee

    如果进行聚合查询时候:

    GET /megacorp/employee/_search
    {
    "aggs": {
    "all_interests": {
    "terms": { "field": "interests" }
    }
    }


    返回错误码:

    {
    "error" : {
    "root_cause" : [
    {
    "type" : "illegal_argument_exception",
    "reason" : "Fielddata is disabled on text fields by default. Set fielddata=true on [interests] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
    }
    ],
    "type" : "search_phase_execution_exception",
    "reason" : "all shards failed",
    "phase" : "query",
    "grouped" : true,
    "failed_shards" : [
    {
    "shard" : 0,
    "index" : "megacorp",
    "node" : "hDWX06IlTiu7gK3ybmsb-g",
    "reason" : {
    "type" : "illegal_argument_exception",
    "reason" : "Fielddata is disabled on text fields by default. Set fielddata=true on [interests] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
    }
    }
    ]
    },
    "status" : 400


    提示:fielddata=true未开启
    此时需要做的是:

    curl -i -H "Content-Type:application/json" -XPUT 127.0.0.1:9200/your_index/_mapping/your_type/?pretty -d'{"your_type":{"properties":{"your_field_name":{"type":"text","fielddata":true}}}}'
    1
    curl -i -H "Content-Type:application/json" -XPUT 127.0.0.1:9200/megacorp/_mapping/employee/?pretty -d'{"employee":{"properties":{"interests":{"type":"text","fielddata":true}}}}'
    1
    interests指的是需要开启fielddata的field

    此时再进行测试

    "aggregations" : {
    "all_interests" : {
    "doc_count_error_upper_bound" : 0,
    "sum_other_doc_count" : 0,
    "buckets" : [
    {
    "key" : "music",
    "doc_count" : 2
    },
    {
    "key" : "forestry",
    "doc_count" : 1
    },
    {
    "key" : "sports",
    "doc_count" : 1
    }
    ]

    就可以看出根据interests来进行聚类的查询结果,在这里就可以根据结果进行兴趣分析等
    ————————————————
    原文链接:https://blog.csdn.net/baristas/article/details/78974090

  • 相关阅读:
    EKLM3S8962之LED
    [uClinuxdev] detecting stack overflow
    Eclipse换行符
    EKLM3S8962之OLED
    Windows 环境下 GNU ARM 开发环境建立
    关于阻焊层和助焊层的理解
    MISRA C 2004中文版
    对话框托盘程序实现源码
    VC++中四种进程或线程同步互斥的控制方法
    Windows线程同步与互斥技术总结
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/12334926.html
Copyright © 2011-2022 走看看