我正在比较2个数字字段,但看起来好像不起作用。 结果导致文档未按条件过滤。 我错过了什么吗?
GET crawl-panda-18-06-2018-2-2018/_search
{
"filtered": {
"filter": {
"script": {
"script": "doc[csv_hit].value > doc[csv_googlebot-desktop].value"
}
}
}
}
映射:
{
"crawl-panda-18-06-2018-2-2018": {
"aliases": {},
"mappings": {
"items": {
"properties": {
(...)
"csv_googlebot-desktop": {
"type": "long"
},
"csv_hit": {
"type": "long"
}
(...)
结果样本:
"csv_googlebot-desktop": 1,
"csv_hit": 0
答案 0 :(得分:0)
@Val发现的第一个错误:Elasticsearch / Kibana不允许在GET和查询之间插入行。
第二个错误是脚本过滤器已被脚本查询取代:
“脚本过滤器已被脚本查询代替。它在“查询上下文”中充当查询,在“过滤器上下文”中充当过滤器(请参阅查询DSL)。”
使用以下代码:
GET index-name/_search
{
"query": {
"bool" : {
"must" : {
"script" : {
"script" : {
"source": "doc['field_a'].value > doc['field_b'].value",
"lang": "painless"
}
}
}
}
}
}