提问要多花一点心思哦

es script 字段 如何进行多值搜索?

Elasticsearch | 作者 yanianthe | 发布于2017年12月22日 | 阅读数:7031

背景: 使用 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"]}} 这样去搜么
已邀请:

yanianthe - TX 搬砖

赞同来自:

求社区大神赐教~

medcl - 今晚打老虎。

赞同来自:

SCRIPT 字段不支持搜索的。搜索需要走索引,需要提取创建,script 是查询时动态计算,可以通过script 传参过滤。

要回复问题请先登录注册