为了账号安全,请及时绑定邮箱和手机立即绑定

Elasticsearch 1.7 scripted_metric 分析的字符串

Elasticsearch 1.7 scripted_metric 分析的字符串

MYYA 2022-06-02 16:15:40
我有一个脚本指标,我正在尝试获取分析字符串的值,该字符串返回一个字符串数组。我正在尝试为分析的字段获取正确的值,该字段返回按字母顺序排序并按空格分隔的字符串。与未分析的字符串一起运行良好。带有分析字段的脚本化指标:"aggs": {            'influencers': {                'scripted_metric': {                    "init_script": "_agg['transactions'] = []",                    'map_script': """                        result = [:];                        result['field_analyzed1'] = doc['field_analyzed1'].values;                        result['field_analyzed2'] = doc['field_analyzed2'].value;                        result['field_not_analyzed'] = doc['field_not_analyzed'].value;                        _agg.transactions.add(result);                        """                }            }        }我正在尝试获取以下字符串Francisco Claudio Urbano,但 is 的结果和isfield_analyzed1的['claudio', 'francisco', 'urbano']结果,只有数组的第一个字符串。使用该字段的结果是正确的。field_analyzed2claudiofield_not_analyzedFrancisco Claudio Urbano我认为对于较新的版本,我可以做这样的事情或使用无痛脚本:result['field_text'] = doc['field_text.keyword'].value;但我需要 ES 1.7body = {    'script_fields': {        'test': {            'script': 'doc["analyzed_field"].value',            'lang': 'groovy'        }    }}
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在 1.7 中,您可以创建一个未分析的子字段


"properties" : {

            "name" : {

                "type" : "string",

                "fields" : {

                    "raw": {

                        "type" : "string",

                         "index" : "not_analyzed"

                    }

                }

            }

这类似于新版本中的 type 关键字


查看完整回答
反对 回复 2022-06-02
  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信