【问题标题】:Can I specify the result fields in elasticsearch query?我可以在 elasticsearch 查询中指定结果字段吗?
【发布时间】:2014-01-24 22:20:14
【问题描述】:

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

是否可以在 ElasticSearch 中为全文查询指定输出字段? (类似于 MongoDB 中的投影)

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 如何添加一个静态值"user" : "kimchy" 和一个可用于搜索其余字段"fields" : ["user", "postDate","address","description"], 的动态查询
    【解决方案2】:

    请注意 ElasticSearch 1.0.0.RC1 中的字段返回值现在始终是列表, 如果需要结果是 long 而不是 long 列表(大多数情况下可能是一个单值列表),您可以使用 _source

    限制这些结果
    {"_source" : ["field1", "field2", ...],
         "query" : {
            "term" : { "user" : "kimchy" }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多