猿问

Elasticsearch 1.7 scripted_metric 分析的字符串

我有一个脚本指标,我正在尝试获取分析字符串的值,该字符串返回一个字符串数组。


我正在尝试为分析的字段获取正确的值,该字段返回按字母顺序排序并按空格分隔的字符串。与未分析的字符串一起运行良好。


带有分析字段的脚本化指标:


"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.7


body = {

    'script_fields': {

        'test': {

            'script': 'doc["analyzed_field"].value',

            'lang': 'groovy'

        }

    }

}


MYYA
浏览 217回答 1
1回答

海绵宝宝撒

在 1.7 中,您可以创建一个未分析的子字段"properties" : {            "name" : {                "type" : "string",                "fields" : {                    "raw": {                        "type" : "string",                         "index" : "not_analyzed"                    }                }            }这类似于新版本中的 type 关键字
随时随地看视频慕课网APP

相关分类

Python
我要回答