首页 文章

是否可以在elasticsearch中的搜索结果中返回虚拟字段

提问于
浏览
2

我想知道是否有可能通过参数或文档映射以某种方式在elasticsearch查询中返回虚拟字段 .

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

在所有示例中,仅检查检测到的语言,从不返回 .

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

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

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

1 回答

  • 1

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

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

    您可以看到更多信息herehere .

相关问题