2013-04-05 179 views
1

我不知道如何通過DataImportHandler從mysql導入正確的日期時間到solr。導入後的日期時間值獲得中減去2小時如何從mysql導入正確的datetime到solr?

MySQL的 「created_at 2013年4月5日15時04分21秒」 獲得Solr中爲 「created_at」: 「2013-04-05T13:04:21Z」

mysql @@ global.time_zone,@@ session.time_zone都是系統並顯示正確的CET時間。

這裏我的數據-config.xml中

<dataConfig> 
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost/test" 
     user="+++" password="++++/> <document> 
<entity name="id" 
    query="SELECT table.created_at, ... from table" 
    <field column="created_at" name="created_at"/> 

我試圖用CONVERT_TZ命令。在MySQL中,它解決了。但用solr我沒有成功,created_at的值是根本沒有索引。

<entity name="id" 
    query="SELECT query="SELECT CONVERT_TZ(table.created_at,'+00:00','+01:00'), ... from table" 
    <field column="created_at" name="created_at"/> 
+0

見http://stackoverflow.com/questions/5149606/solr-not-saving-time-in -utc格式。 Solr將您輸入的CET時間轉換爲UTC,這是唯一的格式Solr將接受日期。 – arun 2013-04-06 06:33:03

+0

我現在的解決方案是使用UTC提供Solr,並通過javascript toLocaleString()在瀏覽器客戶端格式化日期時間。 [https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date#Date_instances] – domfry 2013-04-09 14:56:18

回答

0

試試這個:我在索引中使用此,

$query= "SELECT DATE_FORMAT(CONVERT_TZ(table.created_at,'+00:00','+01:00'),'%Y-%m-%dT%TZ'),.. FROM table "; 

DateField Maual of SOLR

+0

好的,謝謝。我用utc格式索引日期2013-01-09T15:57:50Z ..那很好。有沒有辦法在CET時間查詢日期表單?還是必須通過例如在我的用戶界面中改變solr之外的時區。 javascript – domfry 2013-04-08 11:58:39

+0

Suhel Meman:謝謝,在我將這個sql語句添加到我的data-config.xml之後,created_at字段根本沒有索引 – domfry 2013-04-08 12:04:21