我可以在elasticsearch查询中指定结果字段吗?

时间:2014-01-24 22:20:14

标签: elasticsearch

在我的数据集中,文档包含20多个具有嵌套对象的字段。其中大多数是长文本字段。这些字段对于全文搜索很重要,但我们只需要在输出中显示标题,简短描述和Id。

是否可以在ElasticSearch中指定输出字段以进行全文查询? (比如MongoDB中的投影)

2 个答案:

答案 0 :(得分:15)

我认为您正在寻找搜索请求的fields属性:

  

允许有选择地为每个文档加载特定字段   由搜索命中代表。默认加载内部_source   字段。

{
    "fields" : ["user", "postDate"],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}
     

字段将自动加载存储的字段(存储映射设置为   是),或者,如果没有存储,将加载_source并从中提取它   (允许返回嵌套的文档对象)。

答案 1 :(得分:11)

在ElasticSearch 1.0.0.RC1中注意,字段返回值现在总是列表, 如果需要结果为long而不是long列表(大多数时候可能是单个值列表),您可以使用_source限制那些

{"_source" : ["field1", "field2", ...],
     "query" : {
        "term" : { "user" : "kimchy" }
    }
}