ES source&doc value

772 阅读1分钟

查询数据解析

source查询

  • source 过滤

    # source 过滤
    String[] includeFields = new String[] {"test1", "test2"};
    String[] excludeFields = new String[] {"test1", "test2"};
    sourceBuilder.fetchSource(includeFields, excludeFields);
    
  • source不需要过滤,返回所有字段 无需配置

  • source关闭

    sourceBuilder.fetchSource(false)
    

source获取数据

String sourceStr = oneHit.getSourceAsString();
JSONObject json = new JSONObject(sourceStr);

Map<String Object> map = oneHit.getSourceAsMap();

doc value查询

  • 增加需要返回的字段:包括字段名 + 格式化
    sourceBuilder.docValueField(field, "use_field_mapping");
    
  • DDL
    GET /_search
    {
        "query" : {
            "match_all": {}
        },
        "docvalue_fields" : [
            {
                "field": "my_ip_field", 
                "format": "use_field_mapping" 
            },
            {
                "field": "my_date_field",
                "format": "epoch_millis" 
            }
        ]
    }
    

doc value获取数据

Map<String, DocumentField> map = oneHit.getFields();
DocumentField module = map.get("module");
spanInfo.setModule(module == null ? "" : module.getValue());

参考官方文档 www.elastic.co/guide/en/el… www.elastic.co/guide/en/el…