2017-08-28 57 views
1

我剛安裝了Solr6.6.0。在CentOS上,並使用提供的示例「sample_techproducts_configs」進行工作。我能夠索引文件,但只要我給它一個圖像文件,我就會收到關於無效日期的異常。 Solr細胞從EXIF中提取一個日期,然後似乎無法將其傳遞給Solr。 我用下面的圖像文件:Solr Cell無法用EXIF索引圖像文件

http://www.imagemagick.org/Usage/photos/pagoda_sm.jpg

和從Solr的響應是:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">400</int><int name="QTime">114</int></lst><lst name="error"><lst name="metadata"><str name="error-class">org.apache.solr.common.SolrException</str><str name="root-error-class">org.apache.solr.common.SolrException</str></lst><str name="msg">Invalid Date String:'2005-07-09T14:05:15'</str><int name="code">400</int></lst> 
</response> 

它抱怨被格式化爲yyyy-MM-dd'T'HH:mm:ss的日期,這應該是根據默認日期格式:

https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Solr+Cell+using+Apache+Tika

我在找af ix或者至少是解決方法,所以它會跳過日期並僅從EXIF索引其他信息。

回答

0

在運行多年的執行環境中,發生了一個非常類似的錯誤。我將其追蹤到SOLRs schema.xml中的更改。動態日期字段添加了一個新的通配符域:

<dynamicField name="date_*" type="tdate" indexed="true" stored="true" multiValued="true"/> 

Tikas庫的EXIF提取似乎試圖創建這個充滿活力的領域定義相匹配的EXIF日期字段的字段。由於EXIF的dateformat與TrieDateField類中使用的SOLR默認日期格式(ISO 8601)不匹配,因此會發生解析錯誤。

刪除此通配符字段並切換到特定的字段定義適用於我。在這種情況下,日期字段值沒有編入索引,但其餘的EXIF數據是。

另一種導入這些日期格式的方法也可以實現Filter用正則表達式檢查輸入日期並將結果轉換爲正確的格式。

也許你的問題有點相關,或者它可以幫助別人調試類似的問題。

+0

在您發佈的教程中,我還發現可以配置'requestHandler'來定義幾種支持的日期格式的提示。這似乎是對我來說最好的方法。 – TurbuLenz