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

Sha*_*hed 12 elasticsearch

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

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

Pau*_*ora 16

我想你正在寻找fields搜索请求的属性:

允许有选择地为搜索匹配所代表的每个文档加载特定字段.默认加载内部_source 字段.

{
    "fields" : ["user", "postDate"],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}
Run Code Online (Sandbox Code Playgroud)

这些字段将自动加载存储的字段(存储映射设置为yes),或者,如果未存储,将加载_source并从中提取(允许返回嵌套的文档对象).


小智 11

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

{"_source" : ["field1", "field2", ...],
     "query" : {
        "term" : { "user" : "kimchy" }
    }
}
Run Code Online (Sandbox Code Playgroud)