在我的数据集中,文档包含20多个具有嵌套对象的字段。其中大多数是长文本字段。这些字段对于全文搜索很重要,但我们只需要在输出中显示标题,简短描述和Id。
是否可以在ElasticSearch中指定输出字段以进行全文查询? (比如MongoDB中的投影)
答案 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" }
}
}