我正在运行一个如下所示的查询,只有许多过滤器:
{
"size": 30,
"query": {
"function_score": {
"query": {
"filtered": {
"query": {
"match_all": {}
}
}
},
"script_score": {
"script": "( doc['num'].value <= 3 || Math.random() < 1/doc['num'].value ) ? Math.random() : 0"
},
"boost_mode": "replace"
}
}
}
并且看到运行时间比没有功能评分脚本慢10倍,即使使用所有可能的过滤器也是如此。
我们正在运行Elastic版本1.0.0并使用Java API(包org.elasticsearch.client)
有没有办法以更好的性能获得类似的结果? Elasticsearch教程中的“Native Java Scripts”链接似乎已经破解。