簡體   English   中英

Solr:org.apache.solr.common.SolrException:無效的日期字符串:

[英]Solr: org.apache.solr.common.SolrException: Invalid Date String:

我是solr的新手,這是我第一次嘗試索引solr數據,我在索引時得到以下異常,

org.apache.solr.common.SolrException:無效的日期字符串:在org.apache.solr.schema.TrieDateField的org.apache.solr.schema.DateField.parseMath(DateField.java:165)中的'2011-01-07' .orgateField(TrieDateField.java:169)org.apache.solr.schema.SchemaField.createField(SchemaField.java:98)org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:204)org。 apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:277)

我從閱讀一些文章中了解到Solr只在UTC中存儲時間,這是我想要索引的查詢,

選擇id,文本,'language',鏈接,tweetType,source,location,bio,url,utcOffset,timeZone,frenCnt,createdAt,createdOnGMT,createdOnServerTime,follCnt,favCnt,totStatusCnt,usrCrtDate,humanSentiment,replyly,replyMsg,classified,locationDetail ,geonameid,country,continent,placeLongitude,placeLatitude,listedCnt,hashtag,mentions,senderInfScr,createdOnGMTDate,DATE_FORMAT(CONVERT_TZ(createdOnGMTDate,'+ 00:00','+ 05:30'),'%Y-%m-% d')作為IST,DATE_FORMAT(CONVERT_TZ(createdOnGMTDate,'+ 00:00','+ 01:00'),'%Y-%m-%d')為ECT,DATE_FORMAT(CONVERT_TZ(createdOnGMTDate,'+ 00) :00','+ 02:00'),'%Y-%m-%d')為EET,DATE_FORMAT(CONVERT_TZ(createdOnGMTDate,'+ 00:00','+ 03:30'),'%Y - %m-%d')作為MET,簽名(分類)為來自的情緒

我為什么要進行此時區轉換是因為我需要按用戶時區對結果進行分組。 我怎樣才能實現這一目標?

此致,羅希特

Solr日期必須采用1995-12-31T23:59:59Z的格式。 你只提供日期部分,而不是時間。

有關更多詳細信息,請參閱DateField javadocs

日期分面完全由查詢參數驅動,因此如果我們使用它們發生的“真實”時間索引您的事件(格式化為UTC字符串),則可以使用用戶指定的任何時區偏移量選擇日期范圍。查詢時間作為UTC偏移量。

facet.range = dateField
facet.range.start = 2011-01-01T00:00:00Z+${useroffset}MINUTES
facet.range.gap = +1DAY

這將返回用戶時區的結果,並且實際上不需要對查詢進行時區轉換並單獨索引該列。

此致,羅希特

信用答案:Chris Hostetter(Solr用戶組)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM