xpages来自日期间隔的ftsearch文档

时间:2014-05-13 06:54:15

标签: xpages xpages-ssjs

我使用IBM的教程

为ftsearch创建了一个xpage元素

我的请求:是否有可能有2个日期字段(作为搜索的输入要求)来查找那些创建日期在包含这2个日期的区间内的文档?

我应该创建一个计算字段dtCreated,我将存储创建日期,然后在视图的search属性中我应该添加如下内容:

      var tmpArray = new Array("");
        var cTerms = 0;
        if (sessionScope.searchDate1) && (sessionScope.searchDate2) {
        tmpArray[cTerms++] = "(Field dtCreated > \"" + sessionScope.searhcDate1 + "\")" && "(Field dtCreated < \"" + sessionScope.searhcDate2 + "\")";
        }
    ....
    ....

还是有另一种选择?

我的2个会话变量有Short (5/5/14) Date format。此外,我对这2个日期(会话变量)的默认值为"",但当然我在点击Submit按钮之前添加了一些值。

谢谢你的时间!

3 个答案:

答案 0 :(得分:5)

您可以使用特殊字段_creationDate作为创建日期(请参阅Tommy的回答)。基于此,以下示例查询将在Notes客户端中起作用:

Field _creationDate > 01-01-2014 AND Field _creationDate < 01-03-2014

为了使此查询能够与您的特定代码一起使用,请执行以下操作:

var tmpArray = new Array("");
var cTerms = 0;
var dateFormatter = new java.text.SimpleDateFormat( "dd-MM-yyyy" ); 
if (sessionScope.searchDate1) && (sessionScope.searchDate2) {
    tmpArray[cTerms++] = "Field _creationDate > " + dateFormatter.format(sessionScope.searchDate1) + " AND Field _creationDate < " + dateFormatter.format(sessionScope.searchDate2);
}

答案 1 :(得分:0)

如果你想做一个FTSearch,可以使用_CreationDate

文档(滚动到搜索标题信息): http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_CUSTOMIZING_SEARCH_FORMS_7304.html

E.g。 (可能存在拼写错误):

tmpArray [cTerms ++] =“(Field _creationDate&gt;”+ sessionScope.searhcDate1 +“)AND(Field _creationDate&lt;”+ sessionScope.searhcDate2 +“)”;

或者我的首选语法:

tmpArray [cTerms ++] =“[_ createDate&gt;” + sessionScope.searhcDate1 +“] AND [_creationDate&lt;” + sessionScope.searhcDate2 +“]”;

答案 2 :(得分:0)

以汤米的回答为基础:

具体来说,尝试“yyyy / m / d”作为格式。如果sessionScope中的那些值是java.util.Date(日期字段使用的类型),你可以尝试这样的事情(键入我的头顶,而不是在应用程序中,所以我为打字错误道歉):

var tmpArray = [];
var cTerms = 0;
if(sessionScope.searchDate1 && sessionScope.searchDate2) {
    var formatter = new java.text.SimpleDateFormat("yyyy/M/d");
    tmpArray[cTerms++] = "[_CreationDate] >= " + formatter.format(sessionScope.searchDate1) + " and [_CreaationDate] <= " + formatter.format(sessionScope.searchDate2)
}

您最终想要的是FT查询,例如:

[_CreationDate] >= 2014/1/1 and [_CreationDate] <= 2014/2/1