【发布时间】:2014-01-24 22:20:14
【问题描述】:
在我的数据集中,一个文档包含 20 多个带有嵌套对象的字段。其中大多数是长文本字段。这些字段对于全文搜索很重要,但我们只需要在输出中显示标题、简短描述和 Id。
是否可以在 ElasticSearch 中为全文查询指定输出字段? (类似于 MongoDB 中的投影)
【问题讨论】:
标签: elasticsearch
在我的数据集中,一个文档包含 20 多个带有嵌套对象的字段。其中大多数是长文本字段。这些字段对于全文搜索很重要,但我们只需要在输出中显示标题、简短描述和 Id。
是否可以在 ElasticSearch 中为全文查询指定输出字段? (类似于 MongoDB 中的投影)
【问题讨论】:
标签: elasticsearch
我认为您正在寻找搜索请求的 fields 属性:
允许有选择地为每个文档加载特定字段 由搜索命中表示。默认加载内部
_source字段。{ "fields" : ["user", "postDate"], "query" : { "term" : { "user" : "kimchy" } } }字段将自动加载存储的字段(存储映射设置为 是),或者,如果未存储,将加载
_source并从中提取它 (允许返回嵌套的文档对象)。
【讨论】:
"user" : "kimchy" 和一个可用于搜索其余字段"fields" : ["user", "postDate","address","description"], 的动态查询
请注意 ElasticSearch 1.0.0.RC1 中的字段返回值现在始终是列表, 如果需要结果是 long 而不是 long 列表(大多数情况下可能是一个单值列表),您可以使用 _source
限制这些结果{"_source" : ["field1", "field2", ...],
"query" : {
"term" : { "user" : "kimchy" }
}
}
【讨论】: