gpt4 book ai didi

python - Elasticsearch 1.7 scripted_metric 分析字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:10 24 4
gpt4 key购买 nike

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

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

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

"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 Urbanofield_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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com