2015-04-02 210 views
2

我試圖創建一個從現有油田,又名request_uri一個新的領域,從script_field值不返回原始值

原來的查詢返回,

{ 
    ... 
     "hits" : [ 
     { 
      "_type" : "xx", 
      "_index" : "xx", 
      "fields" : { 
       "request_uri" : [ 
        "/static/image/smiley/default/shocked.gif" 
       ] 
      }, 
      "_id" : "AUx5EnoynHZzwsDrHRRb", 
      "_score" : 1 
     } 
     ], 
     "total" : 2 
    } 
} 

現在,如果我創建一個script_field底座上的request_uri字段,

{ 
    "script_fields": { 
    "isAnImage": { 
     "script": "doc['request_uri'].value" 
    } 
    } 
} 

isAnImage返回default。這意味着它不是原始值,但分析關鍵字

剛剛違背了文檔的數組...

我錯了什麼事?

我需要得到原始的request_uri字符串,並做一些事情,但我無法檢索正確的字符串。

enter image description here

+0

嘗試使用_source而不是doc。效率低下,因爲它強制加載源,但它可能會做你想做的事。 – GlenRSmith 2015-04-03 12:50:52

回答

0

當你打doc對象,您的要求越來越路由到反向反向索引或字段數據緩存。在這裏,您只能以數組的形式訪問分析的數據。

如果您需要ray數據,您需要點擊_source而不是doc。 這會非常緩慢,但是你會得到正確的價值。 另一種選擇是將url維護爲not_analyzed,以便您的字段數據緩存將整個信息作爲單個令牌。 這裏的文檔會給你整個字符串,同時你的表現也不會受到影響。