现在mapping时间设定:
"update_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
我查了下api,貌似只支持精确匹配,或者做范围检索。
问题如下:
1、对于日期:"2017-08-16 23:54:35", 我想通过检索 "2017", 获取这条记录。
用wildcardQuery,通过"*2017*"
报错如下:
{"error":{"root_cause":[{"type":"query_shard_exception","reason":"failed to create query: {\n \"wildcard\" : {\n \"update_time\" : {\n \"wildcard\" : \"2017-08-18\",\n \"boost\" : 1.0\n }\n }\n}","index_uuid":"WzAkDsN-QrKjtPOKqz0PLQ","index":"xxindex"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"letindex","node":"BosI3A-bSJaVM0LHULDC9A","reason":{"type":"query_shard_exception","reason":"failed to create query: {\n \"wildcard\" : {\n \"update_time\" : {\n \"wildcard\" : \"2017-08-18\",\n \"boost\" : 1.0\n }\n }\n}","index_uuid":"WzAkDsN-QrKjtPOKqz0PLQ","index":"letindex","caused_by":{"type":"illegal_argument_exception","reason":"Cannot extract a term from a query of type class org.apache.lucene.search.IndexOrDocValuesQuery: update_time:[1503014400000 TO 1503100799999]"}}}]},"status":400}
用matchQuery,通过"2017",
检索为空。
想问下,如何设置,才能支持wildcardQuery和matchQuery?
"update_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
我查了下api,貌似只支持精确匹配,或者做范围检索。
问题如下:
1、对于日期:"2017-08-16 23:54:35", 我想通过检索 "2017", 获取这条记录。
用wildcardQuery,通过"*2017*"
报错如下:
{"error":{"root_cause":[{"type":"query_shard_exception","reason":"failed to create query: {\n \"wildcard\" : {\n \"update_time\" : {\n \"wildcard\" : \"2017-08-18\",\n \"boost\" : 1.0\n }\n }\n}","index_uuid":"WzAkDsN-QrKjtPOKqz0PLQ","index":"xxindex"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"letindex","node":"BosI3A-bSJaVM0LHULDC9A","reason":{"type":"query_shard_exception","reason":"failed to create query: {\n \"wildcard\" : {\n \"update_time\" : {\n \"wildcard\" : \"2017-08-18\",\n \"boost\" : 1.0\n }\n }\n}","index_uuid":"WzAkDsN-QrKjtPOKqz0PLQ","index":"letindex","caused_by":{"type":"illegal_argument_exception","reason":"Cannot extract a term from a query of type class org.apache.lucene.search.IndexOrDocValuesQuery: update_time:[1503014400000 TO 1503100799999]"}}}]},"status":400}
用matchQuery,通过"2017",
检索为空。
想问下,如何设置,才能支持wildcardQuery和matchQuery?
1 个回复
linyongzhi
赞同来自: