请帮助我解决使用ATG 10.2实现Endeca导航搜索6.3.1的问题
后台:我正在实现基本文本搜索,用户可以在其中搜索日期(例如“24-2月-2014年”),我需要返回具有任何日期属性匹配日期的记录。
数据是发票数据,因此有一些属性,如,paymentDueDate、creationDate等,它们的类型为date。
问题:Endeca类型属性的数据索引是毫秒形式的。因此,当我必须对一个日期输入进行搜索时,我首先将用户输入的字符串日期(搜索项)解析为毫秒,然后像..。
URLEneQuery --> N=0&Ntk=All&Ntt=<dateInMillis>我的问题是,当我这样做的时候,我无法搜索一整天,因为日期被转换成特定的毫秒,而匹配的记录将是那些具有精确毫秒值的记录。我本可以在一天的开始和结束时在毫秒内尝试一个范围筛选器,显然,当您查询"All“而不是某个特定属性时,这是行不通的。
问题:是否可以在Endeca中以某种日期(如格式)索引日期属性,因为我不关心存储/索引毫秒/分钟/小时。我只需要日期,这样我就可以在不解析字符串的情况下启动查询,并在输入日期"24-Feb-2014“上启动查询。
或者,如果有其他方法可以使用表示API查询MDEX?
任何帮助都是非常感谢的。
发布于 2014-03-03 08:56:24
在MDEX开发人员指南的第11章中,有一个如何处理DateTime属性的示例。事实上,您已经有您的日期毫秒是一致的,它最终被恩德卡吞食。
就查询数据而言,您有两个选项,要么构建一个范围查询,通过将当天的00:00:01转换为毫秒作为开始时间,然后将当天的23:59:59转换为结束值(显然需要处理在“缺少的”2000毫秒之外生成的发票的错误级别,但这是您自己想出来的)。或者,您可以在数据处理阶段“截断”您的DateTime。这意味着您需要在提取时间部分时从日期中删除它。要用outputconfig.xml文件实现这一点,您可以在存储库中创建一个只读属性,然后使用一个新的RepositoryPropertyDescriptor填充它的值,该RepositoryPropertyDescriptor会剥离时间部分。
https://stackoverflow.com/questions/22140400
复制相似问题