【发布时间】:2021-12-02 12:44:50
【问题描述】:
当我不向其中添加某些脚本但它失败并返回时,功能脚本查询工作正常 > [script] 内的动态脚本编译过多,最大值:[75/5m];请改用索引或带参数的脚本;此限制可以通过 [script.max_compilations_rate] 设置来更改 > 当我主要向其中添加 2 个脚本时出现此错误。这也不是每次都发生,有时它工作正常,但大多数时候它返回错误。以下是查询:
工作查询:
{
"_source": false,
"query": {
"function_score": {
"functions": [
{
"script_score": {
"script": {
"source": "doc['profile_completed_score'].value >0 ? doc['profile_completed_score'].value * 0.15 : 0"
}
}
},
{
"script_score": {
"script": {
"source": "if(!doc['profile_pic'].empty)return 10; return 0;"
}
}
},
{
"gauss": {
"city_geolocation": {
"origin": {
"lat": "28.536000",
"lon": "77.391000"
},
"scale": "100km",
"offset": "100km",
"decay": 0.0001
}
},
"weight": 15
},
{
"script_score": {
"script": {
"source": "def designation=0; if(doc['designation_name.keyword'].value != null && doc['designation_name.keyword'].value==params.designation) { designation=30; } else { if(doc['designation_name.keyword'].value != null && (doc['designation_name.keyword'].value.toUpperCase().indexOf(params.designation.toUpperCase())>-1 || params.designation.toUpperCase().indexOf(doc['designation_name.keyword'].value.toUpperCase())>-1)) designation=15; } return designation;",
"params": {
"designation": "Technical Manager"
}
}
}
},
{
"script_score": {
"script": {
"source": "def visited=0;def vscore=0;if(!doc['visited_event'].empty && doc['visited_event'].values.contains(params.fact))visited=10;if(!doc['avg_visitor_score'].empty)vscore=doc['avg_visitor_score'].value*0.2; return visited+vscore;",
"params": {
"fact": "13039"
}
}
}
}
],
"score_mode": "sum",
"boost_mode": "replace"
}
},
"size": 20,
"from": 0
}
大多数时候查询返回错误:
{
"_source": false,
"query": {
"function_score": {
"functions": [
{
"script_score": {
"script": {
"source": "doc['profile_completed_score'].value >0 ? doc['profile_completed_score'].value * 0.15 : 0"
}
}
},
{
"script_score": {
"script": {
"source": "if(!doc['profile_pic'].empty)return 10; return 0;"
}
}
},
{
"gauss": {
"city_geolocation": {
"origin": {
"lat": "28.536000",
"lon": "77.391000"
},
"scale": "100km",
"offset": "100km",
"decay": 0.0001
}
},
"weight": 15
},
{
"script_score": {
"script": {
"source": "def designation=0; if(doc['designation_name.keyword'].value != null && doc['designation_name.keyword'].value==params.designation) { designation=30; } else { if(doc['designation_name.keyword'].value != null && (doc['designation_name.keyword'].value.toUpperCase().indexOf(params.designation.toUpperCase())>-1 || params.designation.toUpperCase().indexOf(doc['designation_name.keyword'].value.toUpperCase())>-1)) designation=15; } return designation;",
"params": {
"designation": "Technical Manager"
}
}
}
},
{
"script_score": {
"script": {
"source": "if(!doc['email_active'].empty && doc['email_active'].toInstant().toEpochMilli()/(params.divi) >= (params.epochtime)) return 30; return 0;",
"params": {
"divi": 1000,
"epochtime": 1607863137
}
}
}
},
{
"script_score": {
"script": {
"source": "if((!doc['checkin_edition'].empty && doc['checkin_edition'].contains(params.fact))) return 30; return 0;",
"params": {
"fact": "1330689"
}
}
}
},
{
"script_score": {
"script": {
"source": "def visited=0;def vscore=0;if(!doc['visited_event'].empty && doc['visited_event'].values.contains(params.fact))visited=10;if(!doc['avg_visitor_score'].empty)vscore=doc['avg_visitor_score'].value*0.2; return visited+vscore;",
"params": {
"fact": "13039"
}
}
}
}
],
"score_mode": "sum",
"boost_mode": "replace"
}
},
"size": 20,
"from": 0
}
非常感谢任何形式的帮助。
[在此处输入图片描述][1]
谢谢//
【问题讨论】:
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: elasticsearch kibana elasticsearch-painless esquery