我正在尝试从现有字段aka 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
字符串并对其进行处理,但是我无法检索正确的字符串。
最佳答案
当您点击doc object时,您的请求将被路由到反向反向索引或字段数据缓存。在这里,您只能以数组形式访问分析的数据。
如果需要ray数据,则需要单击_source而不是doc。
这将非常慢,但是您将获得正确的值(value)。
另一个选择是将url保持为not_analyzed,以便您将字段数据缓存中的全部信息作为单个 token 使用。
在这里doc将为您提供整个字符串,同时您的性能也不会受到影响。
关于elasticsearch - script_field中的值不返回 native 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416843/