在使用过滤器查询时,有什么方法可以转换字段的数据类型。 我的场景是我有一个带字段
的文档customData: {
"contactCustomFieldMapId":xxxx,
"contactId":xxxxx,
"customFieldId":45788,
"value":"1899",
"fieldInputTypeId":0
},
{
"contactCustomFieldMapId":xxxx,
"contactId":xxxxx,
"customFieldId":45732,
"value":"Meet me at noon",
"fieldInputTypeId":0
},
{
"contactCustomFieldMapId":xxxx,
"contactId":xxxxx,
"customFieldId":23233,
"value":"233589",
"fieldInputTypeId":0
}
在上面的字段中,value属性可以是任何数据类型(字符串,数据时间或数字),因为我需要使用范围过滤器(大于,小于)来获取数据。此范围过滤器应与术语过滤器组合使用bool过滤器作为
进行查询"filter": {
"and": {
"filters": [
{
"bool": {
"must": [
{
"and": {
"filters": [
{
"term": {
"customData.customFieldId": 45788
}
},
{
"range": {
"customData.value": {
"gt": "1000"
}
}
}
]
}
}
]
}
}
]
}
}
不幸的是,查询使用customData.customFieldId获取所有记录为45788(与现有过滤器类似)。
有什么方法可以将术语过滤器和范围过滤器结合起来。
答案 0 :(得分:0)
可能查询格式不正确。我用这个:
{
"filtered": {
"filter": {
"and": [
{ "term": {
"customData.customFieldId": 45788
}
},
{ "range": {
"customData.value": {
"gt": "1000"
}
}
}
]
}
}
}