parsing - 查询可在ES(v0.90.3)中使用,但不能在任何其他版本中使用。目前已在(v1.2.1)上试用

标签 parsing elasticsearch

Query : 
[
 {"query":
  {"custom_score":
   {"filter":
    {"prefix":
     {"user_account.account_number":
         "670"
     }
    },
    "query":
     {"filtered":
      {"query":
       {"match_all":[]
       },
       "filter":
       {"and":
        [{"term":
          {"user_account.account_id":1
          }
         },
         {"term":
          {"user_account.type":"super"
          }
         }
        ]
       }
      }
     },
    "script":"random()"
   }
  },
  "from":0,"size":1
 }
]

日志:
SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[iPTJT-rkQ2uCfxcC7DmmXg][xpay][2]: SearchParseException[[user][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [[{"query":{"custom_score":{"filter":{"prefix":{"user_account.account_number":"670"}},"query":{"filtered":{"query":{"match_all":[]},"filter":{"and":[{"term":{"user_account.account_id":1}},{"term":{"user_account.type":"i"}}]}}},"script":"random()"}},"from":0,"size":1}]]]]; nested: ElasticsearchParseException[Expected START_OBJECT but got START_ARRAY null]; }{[iPTJT-rkQ2uCfxcC7DmmXg][xpay][3]: SearchParseException[[xpay][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [[{"query":{"custom_score":{"filter":{"prefix":{"user_account.account_number":"670"}},"query":{"filtered":{"query":{"match_all":[]},"filter":{"and":[{"term":{"user_account.account_id":1}},{"term":{"user_account.type":"i"}}]}}},"script":"random()"}},"from":0,"size":1}]]]]; nested: ElasticsearchParseException[Expected START_OBJECT but got START_ARRAY null]; }{[iPTJT-rkQ2uCfxcC7DmmXg][xpay][0]: SearchParseException[[xpay][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [[{"query":{"custom_score":{"filter":{"prefix":{"user_account.account_number":"670"}},"query":{"filtered":{"query":{"match_all":[]},"filter":{"and":[{"term":{"user_account.account_id":1}},{"term":{"user_account.type":"i"}}]}}},"script":"random()"}},"from":0,"size":1}]]]]; nested: ElasticsearchParseException[Expected START_OBJECT but got START_ARRAY null]; }{[iPTJT-rkQ2uCfxcC7DmmXg][xpay][1]: SearchParseException[[xpay][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [[{"query":{"custom_score":{"filter":{"prefix":{"user_account.account_number":"670"}},"query":{"filtered":{"query":{"match_all":[]},"filter":{"and":[{"term":{"user_account.account_id":1}},{"term":{"user_account.type":"super"}}]}}},"script":"random()"}},"from":0,"size":1}]]]]; nested: ElasticsearchParseException[Expected START_OBJECT but got START_ARRAY null]; }]

最佳答案

custom_score在新版本中已弃用。使用功能分数查询而不是custom_score。

custom_score查询

"custom_score": {
"params": {
    "param1": 2,
    "param2": 3.1
},
"query": {...},
"script": "_score * doc['my_numeric_field'].value / pow(param1, param2)"
}

变成
"function_score": {
"boost_mode": "replace",
"query": {...},
"script_score": {
    "params": {
        "param1": 2,
        "param2": 3.1
    },
    "script": "_score * doc['my_numeric_field'].value / pow(param1, param2)"
}
}

关于parsing - 查询可在ES(v0.90.3)中使用,但不能在任何其他版本中使用。目前已在(v1.2.1)上试用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425822/

相关文章:

xml - 使用 XSL 进行解析

iphone - 我在哪里可以找到用于 Objective-C 的 CSV 到 NSArray 解析器?

python - 如何在不使用循环的情况下将 IPv4 地址从字节转换为字符串?

java - 如何将 Elastic search 5.4 连接到 java 中的 tcp?

sql - 在 Spring boot 应用程序中使用 Elasticsearch 全文搜索 sql 数据库的正确方法

elasticsearch - ElasticSearch聚合+在非数值字段5.3上排序

elasticsearch - elasticsearch-jetty 插件中可用的安全角色

c++ - 如何解析和显示 rosbag (C++) 发布的所有 rostopics 和消息

javascript - 如何在没有 jQuery 的情况下在 JavaScript 中读取 .json 文件?

elasticsearch - Elastic Search 传递的对象个数必须是偶数