Explorar o código

fix #2065 parse pdf_date

Shinsuke Sugaya %!s(int64=6) %!d(string=hai) anos
pai
achega
db2364e238

+ 2 - 0
src/main/java/org/codelibs/fess/Constants.java

@@ -402,6 +402,8 @@ public class Constants extends CoreLibConstants {
 
     public static final String MAPPING_TYPE_DATE = "date";
 
+    public static final String MAPPING_TYPE_PDF_DATE = "pdf_date";
+
     public static final String PAGING_QUERY_LIST = "pagingQueryList";
 
     public static final String REQUEST_LANGUAGES = "requestLanguages";

+ 11 - 5
src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java

@@ -138,11 +138,17 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im
                                             dataMap.put(mapping.getValue1(), Long.parseLong(values[0]));
                                         } else if (Constants.MAPPING_TYPE_DOUBLE.equalsIgnoreCase(mapping.getValue2())) {
                                             dataMap.put(mapping.getValue1(), Double.parseDouble(values[0]));
-                                        } else if (Constants.MAPPING_TYPE_DATE.equalsIgnoreCase(mapping.getValue2())) {
-                                            final Date dt =
-                                                    FessFunctions.parseDate(values[0],
-                                                            StringUtil.isNotBlank(mapping.getValue3()) ? mapping.getValue3()
-                                                                    : Constants.DATE_OPTIONAL_TIME);
+                                        } else if (Constants.MAPPING_TYPE_DATE.equalsIgnoreCase(mapping.getValue2())
+                                                || Constants.MAPPING_TYPE_PDF_DATE.equalsIgnoreCase(mapping.getValue2())) {
+                                            final String dateFormate;
+                                            if (StringUtil.isNotBlank(mapping.getValue3())) {
+                                                dateFormate = mapping.getValue3();
+                                            } else if (Constants.MAPPING_TYPE_PDF_DATE.equalsIgnoreCase(mapping.getValue2())) {
+                                                dateFormate = mapping.getValue2();
+                                            } else {
+                                                dateFormate = Constants.DATE_OPTIONAL_TIME;
+                                            }
+                                            final Date dt = FessFunctions.parseDate(values[0], dateFormate);
                                             if (dt != null) {
                                                 dataMap.put(mapping.getValue1(), FessFunctions.formatDate(dt));
                                             } else {