3

在我开始收到搜索查询错误之前,我的服务器运行良好:

RequestError: TransportError(400, u'SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures 

{[bgh1FwvvTmydjtDhY-reCA][article-index][3]: 
SearchParseException[[article-index][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"custom_score": {"query": {"query_string": {"query": "Arvi", "fields": ["text", "title^3", "domain"]}}, "script": "_score * (1.000008**(doc[\'articleid\'].value*50000.0/100000.0))"}}}]]]; nested: QueryParsingException[[article-index] [custom_score] the script could not be loaded]; nested: ScriptException[dynamic scripting disabled]; }

{[bgh1FwvvTmydjtDhY-reCA][article-index][4]: SearchParseException[[article-index][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"custom_score": {"query": {"query_string": {"query": "Arvi", "fields": ["text", "title^3", "domain"]}}, "script": "_score * (1.000008**(doc[\'articleid\'].value*50000.0/100000.0))"}}}]]]; nested: QueryParsingException[[article-index] [custom_score] the script could not be loaded]; nested: ScriptException[dynamic scripting disabled]; }

{[bgh1FwvvTmydjtDhY-reCA][article-index][1]: SearchParseException[[article-index][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"custom_score": {"query": {"query_string": {"query": "Arvi", "fields": ["text", "title^3", "domain"]}}, "script": "_score * (1.000008**(doc[\'articleid\'].value*50000.0/100000.0))"}}}]]]; nested: QueryParsingException[[article-index] [custom_score] the script could not be loaded]; nested: ScriptException[dynamic scripting disabled]; }

{[bgh1FwvvTmydjtDhY-reCA][article-index][2]: SearchParseException[[article-index][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"custom_score": {"query": {"query_string": {"query": "Arvi", "fields": ["text", "title^3", "domain"]}}, "script": "_score * (1.000008**(doc[\'articleid\'].value*50000.0/100000.0))"}}}]]]; nested: QueryParsingException[[article-index] [custom_score] the script could not be loaded]; nested: ScriptException[dynamic scripting disabled]; }]'
)

我不明白发生了什么变化。使用 pyelasticsearch,这是被推送的查询

    bodyquery = {

        "custom_score": {
            "script" : "_score * ("+str(1.0+recency)+"**(doc['articleid'].value*50000.0/"+maxarticleid+"))",
            "query": {
                    "query_string": {"query": keywordstr, "fields": ["text", "title^3", "domain"]}
            }
        }
    }

编辑:

启用动态脚本及其工作。为什么它早点工作,突然停止了。 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html

4

1 回答 1

0

如果我指的是您的错误日志,则在您的弹性搜索查询 dsl 中解析错误。

如下:-

"script": "_score * (1.000008**(doc[\'articleid\'].value*50000.0/100000.0))"

应该:

"script": "_score * (1.000008**(doc['articleid'].value*50000.0/100000.0))"

从查询中删除多余的反斜杠。

于 2014-05-27T06:20:15.003 回答