2015-04-02 168 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,以便您的字段数据缓存将整个信息作为单个令牌。 这里的文档会给你整个字符串,同时你的表现也不会受到影响。