python - Elasticsearch 1.7 scripted_metric 分析字符串

标签 python elasticsearch groovy

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

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

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

"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,但field_analyzed1的结果是['claudio', 'francisco', 'urbano' ] 并且 field_analyzed2 的结果是 claudio,只是数组的第一个字符串。对于字段 field_not_analyzed,结果是正确的 Francisco Claudio Urbano

我认为使用新版本我可以做这样的事情或使用无痛脚本:

result['field_text'] = doc['field_text.keyword'].value;

但我在 ES 1.7 中需要它

body = {
    'script_fields': {
        'test': {
            'script': 'doc["analyzed_field"].value',
            'lang': 'groovy'
        }
    }
}

最佳答案

在 1.7 中,您可以创建非分析子字段

"properties" : {
            "name" : {
                "type" : "string",
                "fields" : {
                    "raw": {
                        "type" : "string",
                         "index" : "not_analyzed"
                    }
                }
            }

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

关于python - Elasticsearch 1.7 scripted_metric 分析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58061183/

相关文章:

python - 如何通过删除不必要的字段来扩展评论框架(django)?

Python Elasticsearch 超时

node.js - node.js 中的 "EIO: i/o error, write"是什么,我该如何消除它?

java - 从基类继承 Grails 域类属性

mysql - 您如何知道 GroovyString 何时不被视为与字符串相同?

python - 如何在终端中的 Jupyter 上运行 python 脚本?

Python mysql.connector cursor.lastrowid 总是返回 0

curry 时的 Groovy 错误

c# - 为什么 C# 没有相当于 python 的 doctest 功能?

elasticsearch - ElasticSearch从查询自动完成功能开始