gpt4 book ai didi

elasticsearch - 有什么方法可以将 Elasticsearch 字段类型从小写转换为标题大写?

转载 作者:行者123 更新时间:2023-12-03 01:14:59 24 4
gpt4 key购买 nike

我的关键字段之一的 flex 搜索输出正以所有小写形式填充,如下所示。

   {
"key" : "activatedevice",
"doc_count" : 2
},
有什么办法可以向该字段添加映射,以便我的输出看起来像这样
   {
"key" : "ActivateDevice",
"doc_count" : 2
}'
目前,我为此键定义的映射如下
"CallingServiceName": {
"index": "not_analyzed",
"type": "string"
},
任何建议如何实现这一目标?
谢谢

最佳答案

猜测此类串联字符串的单词边界非常困难。
如果您的字符串以空格分隔(或具有任何其他可拆分模式),则可以使用以下聚合脚本将CallingServiceName转换为TitleCase:

{
"size": 0,
"aggs": {
"by_csn": {
"terms": {
"script": {
"source": """
String toTitleCase(def s){
def parts = / /.split(s);
String titleCaseString = "";
for (def part : parts){
titleCaseString = titleCaseString + toProperCase(part);
}
return titleCaseString;
}

String toProperCase(def s) {
return s.substring(0, 1).toUpperCase() +
s.substring(1).toLowerCase();
}


return toTitleCase(doc['CallingServiceName.keyword'].value);
"""
},
"size": 10
}
}
}
}
请注意,传递给 toTitleCase函数的字段将需要为 keyword类型,或者在映射中将 fielddata设置为true。

关于elasticsearch - 有什么方法可以将 Elasticsearch 字段类型从小写转换为标题大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62973698/

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