[英]Search for Month and Day in elastic search
弹性搜索新手,请帮忙。
我的日期映射如下
{'mappings': {'properties':{
'Reference': {'fields': {'keyword': {'ignore_above': 100,'type': 'keyword'}},'type': 'text'},
'refdate':{'type': 'date','format':'yyyy-MM-dd'}}}
如何搜索“月”和“日”,例如搜索refdate
为 02-21( 2 月 22 日,与年份无关)的所有“参考”
尝试以下查询,但出现错误
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "doc['refdate'].date.getMonthValue() == 02 && doc['refdate'].date.getDayOfMonth() == 21",
"lang": "painless"
}
}
}
}
}
RequestError: RequestError(400, 'search_phase_execution_exception', 'runtime error')
下面的查询正在工作
qry = {"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "doc['refdate'].value.getMonthValue() == 02 && doc['refdate'].value.getDayOfMonth() == 21",
"lang": "painless"
}
}
}
}
}}
es.search(index='indexName', body=qry, size=100)
如文档中所述
long 和 date 类型的字段具有
getDate()
和getDates()
方法(用于多值字段),以获取 object 以及当前文档值的特定于日期的辅助方法。 在 5.3.0 中,更改日期字段以在调用doc["myfield"].value
时直接公开相同的日期 object,并且不推荐使用日期对象的 getter 方法。 这些方法现在已被删除(从 7.0 开始)。 相反,在日期字段上使用.value
,或使用Instance.ofEpochMillis(doc["myfield"].value)
将长字段显式解析为日期 object 。
请参阅此处如何提取日、年、月等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.