我尝试从现有字段创建新字段,即request_uri
,
原始查询返回
{
...
"hits" : [
{
"_type" : "xx",
"_index" : "xx",
"fields" : {
"request_uri" : [
"/static/image/smiley/default/shocked.gif"
]
},
"_id" : "AUx5EnoynHZzwsDrHRRb",
"_score" : 1
}
],
"total" : 2
}
}
现在,如果我在request_uri
字段上创建一个script_field,
{
"script_fields": {
"isAnImage": {
"script": "doc['request_uri'].value"
}
}
}
isAnImage
返回default
。这意味着它不是原始值,而是一系列已分析的关键字
这与文件相矛盾......
我错了什么?
我需要获取原始request_uri
字符串并对其执行某些操作,但我无法检索到正确的字符串。
答案 0 :(得分:0)
当您访问doc对象时,您的请求将被路由到反向反向索引或字段数据缓存。在这里,您只能将分析的数据作为数组访问。
如果您需要光线数据,则需要点击_source而不是doc。 这将非常缓慢,但随后您将获得正确的价值。 另一个选择是将url维护为not_analyzed,以便您的字段数据缓存将整个信息作为单个标记。 在这里,doc会给你整个字符串,同时你的表现也不会受到影响。