metamodel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (METAMODEL-172) ElasticSearch Date types should be converted properly
Date Wed, 26 Aug 2015 13:59:46 GMT

    [ https://issues.apache.org/jira/browse/METAMODEL-172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14713461#comment-14713461
] 

ASF GitHub Bot commented on METAMODEL-172:
------------------------------------------

Github user LosD commented on a diff in the pull request:

    https://github.com/apache/metamodel/pull/43#discussion_r37984410
  
    --- Diff: elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDateConverter.java
---
    @@ -0,0 +1,41 @@
    +/**
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing,
    + * software distributed under the License is distributed on an
    + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    + * KIND, either express or implied.  See the License for the
    + * specific language governing permissions and limitations
    + * under the License.
    + */
    +package org.apache.metamodel.elasticsearch;
    +
    +import org.apache.metamodel.util.TimeComparator;
    +
    +import java.text.ParseException;
    +import java.text.SimpleDateFormat;
    +import java.util.Date;
    +
    +/**
    + * Util class to convert date strings from ElasticSearch to
    + * proper java Dates.
    + */
    +final class ElasticSearchDateConverter {
    +
    +    public static Date tryToConvert(String dateAsString) {
    +        try {
    +            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
    +            return dateFormat.parse(dateAsString);
    +        } catch (ParseException e) {
    +            return TimeComparator.toDate(dateAsString);
    --- End diff --
    
    Doesn't ES have a utility method to convert the date string to a Date object or milliseconds
since 1970 or something else, using the format of a field? It doesn't really make sense that
we allow any other format than what is dictated by the schema.


> ElasticSearch Date types should be converted properly
> -----------------------------------------------------
>
>                 Key: METAMODEL-172
>                 URL: https://issues.apache.org/jira/browse/METAMODEL-172
>             Project: Apache MetaModel
>          Issue Type: Bug
>            Reporter: Alberto
>            Priority: Critical
>
> When working with ElasticSearch indexes that contains Date types the API is returning
Strings instead of proper Date object.
> We should add some logic inside the ElasticSearchUtils createRow() method to convert
these strings to java.Date objects. As we are not doing this conversion so far the TimeComparator
convertFromString method is not able to parse the string value as a Date, the method returns
null and then the FormatHelper class is throwing an IllegalStateException.
> This is a bit tricky though because the number of date formats supported by ElasticSearch
is quite big  to think about creating a SimpleDateFormat to support every single case: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message