Câu hỏi script_score tập lệnh không thể tải tập lệnh kiểu [nội tuyến], thao tác [tìm kiếm] và lang [groovy] bị tắt


Hiện tại tôi đang sử dụng Elastisearch 1.5.
Tôi muốn cập nhật Elasticsearch 1.7.

Và sau đó khi tôi chạy bên dưới truy vấn đến ES1.7, tôi đã nhận được lỗi

lồng nhau: QueryParsingException [[my_index] script_score tập lệnh không thể   nạp vào]; lồng nhau: ScriptException [tập lệnh của loại [nội tuyến], hoạt động   [tìm kiếm] và lang [groovy] bị tắt];   .

Truy vấn này chắc chắn hoạt động trên môi trường ES 1.5. Tôi muốn sử dụng cùng một truy vấn cho ES 1.7.

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

Tôi đã đọc tài liệu này rồi. https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting

Vì vậy, tôi đã thêm các tùy chọn bên dưới vào elasticsearch.yml của tôi.

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

Và tôi đã làm để khởi động lại elasticsearch daemon và tạo chỉ mục một lần nữa, nhưng tôi vẫn có lỗi.

Có ai khuyên tôi làm thế nào tôi có thể giải quyết vấn đề này?

Thêm

[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" : [ ]
  }
}

9
2017-09-09 01:34


gốc


Bạn có thể thêm script.search: on và script.groovy.sandbox.enabled: true? - Val
@Val Cảm ơn, tôi đã thêm các thông số đó. nhưng nó không hoạt động. hiện tại tôi đã thêm "script.groovy.sandbox.enabled: true" và "script.inline: on" và "script.indexed: on" và "script.search: on" và "script.engine.groovy.inline.aggs : trên". Bất kỳ ý tưởng? - k16
Thật kỳ lạ, chính xác cùng một truy vấn với chính xác cùng một cài đặt hoạt động hoàn hảo trên 1,7 của tôi. Bạn có chắc là bạn đã khởi động lại cụm ES của mình không? - Val
@Val Yeah, tôi chắc chắn rằng tôi đã khởi động lại ES. Tôi đã thêm lệnh vào câu hỏi. Có bất kỳ khác biệt nào về môi trường của bạn không? Tôi đã thay đổi "script_score" đơn giản hơn. - k16
@Sudhanshu Gaur Xin chào, trong trường hợp này, elasticsearch.yml của tôi gần như là mặc định. Tôi đã thêm vài cài đặt cuối cùng của tệp này. xin xem nó. gist.github.com/k1row/3c1b6f9d255362153a21 - k16


Các câu trả lời:


thêm vào script.engine.groovy.inline.update: on vào tệp .yml


6
2018-03-12 15:31





Như repond đã nói:nested: ScriptException[scripts of type [inline], operation [search] and lang [groovy] are disabled]

Bạn có thể thêm script.engine.groovy.inline.search: on trong .yml tập tin.


0
2018-05-18 09:56



vui lòng cung cấp ví dụ dựa trên bài đăng trên OP - Sapnesh Naik