现在有一组数据,其中resultChar是keyword类型,但其中有数字也有字符串,请问怎么能在大于小于查询的时候将其中的数字按照数字的类型进行大于小于的查询,结构如下
{
"lisCheckItemList": [
{
"resultChar": "1",
"itemName": "项目1"
},
{
"resultChar": "2",
"itemName": "项目2"
},
{
"resultChar": "11",
"itemName": "项目3"
},
{
"resultChar": "22",
"itemName": "项目4"
},
{
"resultChar": "25",
"itemName": "项目"
},
{
"resultChar": "3",
"itemName": "项目5"
},
{
"resultChar": "阴性",
"itemName": "项目6"
}
]
}
结果:如果查询resultChar大于2的数据的话目前不会查询出resultChar为11的数据,因为现在的resultChar类型为keyword.但是因为resultChar里面有数字也有字符所以不可以使用数字的类型.请问有什么方法可以将keyword类型中的数字按照数字类型进行大于小于查询.
期待结果: 查询resultChar大于2的数据时会过滤掉小于2的并查询出大于2的数据(查询出resultChar为阴性的那个数据也可以,只要数字的查询是对的就可以)
{
"lisCheckItemList": [
{
"resultChar": "1",
"itemName": "项目1"
},
{
"resultChar": "2",
"itemName": "项目2"
},
{
"resultChar": "11",
"itemName": "项目3"
},
{
"resultChar": "22",
"itemName": "项目4"
},
{
"resultChar": "25",
"itemName": "项目"
},
{
"resultChar": "3",
"itemName": "项目5"
},
{
"resultChar": "阴性",
"itemName": "项目6"
}
]
}
结果:如果查询resultChar大于2的数据的话目前不会查询出resultChar为11的数据,因为现在的resultChar类型为keyword.但是因为resultChar里面有数字也有字符所以不可以使用数字的类型.请问有什么方法可以将keyword类型中的数字按照数字类型进行大于小于查询.
期待结果: 查询resultChar大于2的数据时会过滤掉小于2的并查询出大于2的数据(查询出resultChar为阴性的那个数据也可以,只要数字的查询是对的就可以)
3 个回复
Charele - Cisco4321
赞同来自:
Charele - Cisco4321
赞同来自:
前提:“阴性”这种不能是数字开头
把特殊字符转成了特别数字99999,你也可以改成别的数字。
如果你同时想让“阴性”出现,查询改为bool查询,把99999加进去。
暂时只想到这个方法了,,,
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自: