背景: 使用 es script 字段 如何进行多个值的搜索?
{
"query": {
"bool": {
"must": [
{
"script": {
"script": {"inline":"def monthyear =doc['GoUpDate'].date.year + '-' + doc['GoUpDate'].date.monthOfYear;
int flag= 0;
for(int i =0;i<params.enums.length;i++){
if(params.enums[i]==monthyear)
{
flag=1;
break;
}
};return flag
","lang":"painless",
"params":{"enums":["2015-1","2015-2"]}
}
}
}
]
}
},
"script_fields": {
"test1": {
"script": {
"lang": "painless",
"inline": "doc['GoUpDate'].date.year + '-' + doc['GoUpDate'].date.monthOfYear "
}
}
}
}
目前 在script field中定义了 test1 这个计算方法,想要搜索test1 的某几个值, 在query中 没办法直接使用 {“terms”:{"test1.keyword":["2015-1","2015-2"]}} 这样去搜么
2 个回复
yanianthe - TX 搬砖
赞同来自:
medcl - 今晚打老虎。
赞同来自: