你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
kennywu76 - Wood
赞同来自: 方磊 、liuyt123 、josancpp
POST my_index/_update_by_query { "script": { "lang": "painless", "inline": "if (ctx._source.status_code == null) {ctx._source.status_code= '02'}" } }
赞同来自: liuyt123 、ymsun
PUT my_index/my_type/1 { "city": "NJ", "title": "Document 1" }
PUT my_index/my_type/2 { "city": "BJ", "title": "Document 2", "status_code": null }
"properties": { "status_code": { "type": "keyword", "null_value": "NULL" } }
赞同来自: josancpp
medcl - 今晚打老虎。
赞同来自:
匿名用户
hhh_mmm
要回复问题请先登录或注册
8 个回复
kennywu76 - Wood
赞同来自: 方磊 、liuyt123 、josancpp
kennywu76 - Wood
赞同来自: liuyt123 、ymsun
NULL在ES里的含义和RDBMS非常不同。
NULL的意思是索引的时候,某个字段没有被赋值,例如文档有"city","title"和"status_code"三个字段。
索引的时候漏掉status_code字段: 或者显式给status_code一个空值:
示例里的两条文档的status_code这个字段都是被忽略,不做索引的,因此也就无法做所谓的空值搜索。
因此,为了支持做“status_code = NULL”这样的搜索,就可以配置一个可选的null_value选项:
null_value的值可以任意指定,但是必须和status_code的字段类型一致。 比如配置的keyword类型,null_value就必须是字符型。 如果是long类型,null_value就必须是个数字。 类型不一致会报错。
kennywu76 - Wood
赞同来自: josancpp
medcl - 今晚打老虎。
赞同来自:
匿名用户
赞同来自:
D:\curl\bin>curl -XPUT "http://localhost:9200/vewiki_i ... ot%3B -d "{\"vewiki\":{\"properties\":{\"status\":{\"type\":\"text\",\"null_value\":\"02\"}}}}"
{
"error" : {
"root_cause" : [
{
"type" : "mapper_parsing_exception",
"reason" : "Mapping definition for [status] has unsupported parameters: [null_value : 02]"
}
],
"type" : "mapper_parsing_exception",
"reason" : "Mapping definition for [status] has unsupported parameters: [null_value : 02]"
},
"status" : 400
}
hhh_mmm
赞同来自:
hhh_mmm
赞同来自:
hhh_mmm
赞同来自:
POST my_index/_update_by_query
{
"script":{
"lang":"painless",
"inline":"if (ctx._source.status == null) {ctx._source.status= '02'}"
}
}
它自动为我的索引的mapping创建了status这个字段,并且赋值成功。
字段描述如下:
"status" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},