2014-03-03 24 views
1
日期性質

請幫我在我的問題與實施Endeca的引導搜索6.3.1與ATG 10.2查詢與Endeca的

背景: 我實現基本的文本搜索中,用戶可以搜索日期(例如「2014年2月24日」),我需要返回具有與此日期匹配的任何日期屬性的記錄。

的數據被開發票數據,所以有像,paymentDueDate,creationDate等方面的性能,並且是類型日期

問題的: 在的Endeca編入索引的日期型性能的數據的形式爲毫秒。所以,當我要搜索對輸入的日期,我首先分析用戶輸入到毫秒字符串日期(搜索詞),然後火查詢如..

URLEneQuery --> N=0&Ntk=All&Ntt=<dateInMillis> 

我的問題是我由於日期被轉換爲特定的毫秒,並且匹配的記錄將是那些具有精確毫秒作爲日期屬性值的記錄,因此無法搜索整天。我可以在毫秒內嘗試一個範圍過濾器來開始和結束一天,顯然,當您查詢「全部」而不是特定屬性時,這不起作用。

問題: 是否有可能在指數格式像一些日期Endeca的日期屬性,因爲我不關心存儲/索引毫秒/分鐘/小時。我只需要日期,所以我可以在不解析字符串的情況下觸發查詢,並在輸入日期「2014年2月24日」中激活查詢,因爲它是?

或者如果有另一種方式,我可以使用演示API查詢MDEX?

任何幫助表示讚賞。

回答

1

MDEX Developer Guide的第11章有一個如何處理日期時間屬性的示例。事實上,你已經有幾毫秒的日期符合它最終如何被Endeca攝取。

就查詢數據而言,您有兩種選擇,您可以通過將日期的00:00:01轉換爲毫秒作爲開始時間和23:59來構建一個Range查詢來獲取日期:將當天的59天作爲最終值(顯然需要考慮在'缺失'2000毫秒之外生成的發票的錯誤級別,但這是你要弄清楚的)。或者,您可以在數據處理階段「截斷」日期時間。這意味着您需要從提取日期中刪除時間部分。要使用outputconfig.xml文件實現此目的,您需要在存儲庫中創建一個只讀屬性,然後用刪除時間部分的新RepositoryPropertyDescriptor填充其值。

+0

現貨!好答案 ! – KrishPrabakar