<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Painless 調試 原文鏈接 :?[https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-scripting-painless-debugging.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-scripting-painless-debugging.html) 譯文鏈接 :?[http://www.apache.wiki/pages/viewpage.action?pageId=10027222](http://www.apache.wiki/pages/viewpage.action?pageId=10027222) 貢獻者 : [@琴劍藍天](http://www.apache.wiki/users/viewuserprofile.action?username=xujie),[ApacheCN](/display/~apachecn),[Apache中文網](/display/~apachechina) ?Painless 腳本語言是新的,仍然被標記為實驗性語言。 如果需要,語法或API可能會以非向后兼容的方式在將來更改。 ## Debug.Explain **Painless** 沒有 [**REPL**](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop),雖然它有一天會很好,但它不會告訴你關于調試嵌入在彈性搜索中的 **Painless **腳本的整個故事,因為腳本可以訪問或“上下文 “是如此重要。 現在調試嵌入式腳本的最佳方法是在選擇的地方拋出異常。 雖然你可以拋出你自己的異常(拋出新的異常 ('whatever')),**Painless** 的沙箱阻止你訪問有用的信息,如對象的類型。 所以 **Painless** 有一個實用的方法,_Debug.explain_ 為你拋出異常。 例如,您可以使用 [**Explain API**](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-explain.html) 來探索[腳本查詢](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/query-dsl-script-query.html)可用的上下文。 ``` PUT /hockey/player/1?refresh {"first":"johnny","last":"gaudreau","goals":[9,27,1],"assists":[17,46,0],"gp":[26,82,1]} POST /hockey/player/1/_explain { "query": { "script": { "script": "Debug.explain(doc.goals)" } } } ``` 這表明 _doc.first_ 的類是 _org.elasticsearch.index.fielddata.ScriptDocValues.Longs_ 通過響應: ``` { "error": { "type": "script_exception", "to_string": "[1, 9, 27]", "painless_class": "org.elasticsearch.index.fielddata.ScriptDocValues.Longs", "java_class": "org.elasticsearch.index.fielddata.ScriptDocValues$Longs", ... }, "status": 500 } ``` 您可以使用相同的技巧來查看 __source_ 是 __update API_ 中的 _LinkedHashMap_: ``` POST /hockey/player/1/_update { "script": "Debug.explain(ctx._source)" } ``` 響應如下: ``` { "error" : { "root_cause": ..., "type": "illegal_argument_exception", "reason": "failed to execute script", "caused_by": { "type": "script_exception", "to_string": "{gp=[26, 82, 1], last=gaudreau, assists=[17, 46, 0], first=johnny, goals=[9, 27, 1]}", "painless_class": "LinkedHashMap", "java_class": "java.util.LinkedHashMap", ... } }, "status": 400 } ``` 一旦你有一個類,你可以去[附錄A,_Painless API_](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/painless-api-reference.html)參考,看看可用的方法的列表。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看