【问题标题】:Is it possible to return virtual fields in a search result in elasticsearch是否可以在elasticsearch的搜索结果中返回虚拟字段
【发布时间】:2015-09-11 12:28:04
【问题描述】:

我想知道是否可以通过参数或文档映射在弹性搜索查询中以某种方式返回虚拟字段。

目前我正在尝试使用elasticsearch-langdetect 插件来检测内容语言。它创建包含文档语言的子字段。我想要做的是再次查询文档并将它们索引到另一个弹性搜索索引中,即特定于语言的索引,而不在任何语言特定索引中插入任何文档两次。

在所有示例中,检测到的语言只被查询,从不返回。

如何通过elasticsearch搜索结果返回不在原始文档中的非存储属性?或者这在弹性搜索中是不可能的。我搜索了文档,只找到了字段 script_fields 和 field_data 字段,它们都做其他事情并且仅在存储字段上工作 AFAIK。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-fields.html

我可以存储根据源数据计算的字段吗?

【问题讨论】:

    标签: elasticsearch elasticsearch-plugin


    【解决方案1】:

    由于 _source 中不存在此信息,因此您将无法直接获取它。 但是还有另一种选择。 您可以使用script field 从字段数据缓存中读取此值。

    {
        "query" : {
            "match_all" : {}
        },
        "script_fields" : {
            "langauge" : {
                "script" : "doc['lang'].value"
            }
        }
    }
    

    您可以查看更多信息herehere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多