elasticsearch,function_score SearchPhaseExecutionException

时间:2015-03-09 05:04:24

标签: elasticsearch

我在本page的最后一部分遵循了教程。

POST /merchantindex/_search
{
    "function_score": {
    "query": {
    {"query_string": { "query": "test"}}
    },
    "functions": [
        {
            "script_score": 
            {
                "script": "return _score;"
            }
        }
    ]
}
}

我期待相关性得分的回归。我想用_score做一些处理,例如_score *其他一些东西,但我只是尝试,如果代码现在工作。

我得到的错误是

"error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;...

1 个答案:

答案 0 :(得分:1)

此错误:

"error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;...

通常意味着您的查询格式错误。

如果您查看了自己的查询,就会发现queryquery_string之间有两个大括号:

"query": {    {"query_string":

同样function_score需要位于查询中,functions需要位于function_score内。

请改为尝试:

curl -XPOST "http://localhost:9200/merchantindex/_search" -d '
{
    "query": {
      "function_score" : {
         "query" :{
            "query_string": { "query": "test"}
         },
         "functions": [
         {
            "script_score": {
                "script": "return _score;"
            }
         }
       ]
     }
   }
}'