gpt4 book ai didi

elasticsearch - script_score 无法加载脚本类型 [inline]、操作 [search] 和 lang [groovy] 的脚本被禁用

转载 作者:行者123 更新时间:2023-11-29 02:46:04 24 4
gpt4 key购买 nike

目前我使用 Elastisearch 1.5。
我想更新到 Elasticsearch 1.7。

然后当我运行以下查询到 ES1.7 时,我得到了错误

nested: QueryParsingException[[my_index] script_score the script could not be loaded]; nested: ScriptException[scripts of type [inline], operation [search] and lang [groovy] are disabled]; .

这个查询绝对适用于 ES 1.5 环境。我想对 ES 1.7 使用相同的查询。

{
"query": {
"function_score": {
"query": {
"filtered": {
"query": {
"query_string": {
"fields": [
"itemname"
],
"query": "coke"
}
}
}
},
"script_score": {
"script": "_score + doc['myscore'].value"
}
}
}
}

我已经阅读了这份文件。 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting

因此,我在 elasticsearch.yml 中添加了以下选项。

script.inline: on  
script.indexed: on
script.engine.groovy.inline.aggs: on

我确实重启了 elasticsearch 守护进程并再次创建索引,但我仍然遇到错误。

有没有人告诉我如何解决这个问题?

已添加

[root@elasticsearch]# curl -XGET 'http://localhost:9200'
{
"status" : 200,
"name" : "Ghost Girl",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.1",
"build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19",
"build_timestamp" : "2015-07-29T09:54:16Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}

[root@elasticsearch]# tail -n 10 /etc/elasticsearch/elasticsearch.yml
# http server. With this enabled, it may pose a security risk, so disabling
# it unless you need it is recommended (it is disabled by default).
#
#http.jsonp.enable: true

script.groovy.sandbox.enabled: true
script.inline: on
script.indexed: on
script.search: on
script.engine.groovy.inline.aggs: on

[root@elasticsearch]# /etc/rc.d/init.d/elasticsearch restart
Stopping elasticsearch: [ OK ]
Starting elasticsearch: [ OK ]

[root@elasticsearch]# curl -XPOST 'localhost:9200/my_index/_search?pretty' -d '{
> "query": {
> "function_score": {
> "query": {
> "filtered": {
> "query": {
> "query_string": {
> "fields": [
> "itemname"
> ],
> "query": "coke"
> }
> }
> }
> },
> "script_score": {
> "script": "_score * 0.5"
> }
> }
> }
> }'
{
"took" : 3029,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 3,
"failed" : 2,
"failures" : [ {
"index" : "my_index",
"shard" : 1,
"status" : 400,
"reason" : "RemoteTransportException[[Fury][inet[/xx.xx.xx.xx:9300]][indices:data/read/search[phase/query]]]; nested: SearchParseException[[ss][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\": {\n \"function_score\": {\n \"query\": {\n \"filtered\": {\n \"query\": {\n \"query_string\": {\n \"fields\": [\n \"itemname\"\n ],\n \"query\": \"coke\"\n }\n }\n }\n },\n \"script_score\": {\n \"script\": \"_score * 0.5\"\n }\n }\n }\n}]]]; nested: QueryParsingException[[my_index] script_score the script could not be loaded]; nested: ScriptException[scripts of type [inline], operation [search] and lang [groovy] are disabled]; "
}, {
"index" : "my_index",
"shard" : 4,
"status" : 400,
"reason" : "RemoteTransportException[[Fury][inet[/xx.xx.xx.xx:9300]][indices:data/read/search[phase/query]]]; nested: SearchParseException[[my_index][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\": {\n \"function_score\": {\n \"query\": {\n \"filtered\": {\n \"query\": {\n \"query_string\": {\n \"fields\": [\n \"itemname\"\n ],\n \"query\": \"coke\"\n }\n }\n }\n },\n \"script_score\": {\n \"script\": \"_score * 0.5\"\n }\n }\n }\n}]]]; nested: QueryParsingException[[my_index] script_score the script could not be loaded]; nested: ScriptException[scripts of type [inline], operation [search] and lang [groovy] are disabled]; "
} ]
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}

最佳答案

在 .yml 文件中添加 script.engine.groovy.inline.update: on

关于elasticsearch - script_score 无法加载脚本类型 [inline]、操作 [search] 和 lang [groovy] 的脚本被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com