多值日期字段搜索不起作用

mutivalue date field search not working

我有一个名为 freeDaysPool 的多值字段,它有多个日期字符串。使用以下代码,搜索不会 return 任何东西。如果我将该字段排除在外,则搜索可以与其他两个字段一起正常工作。我读到我应该将 CONTAINS 与多值字段一起使用,但后来我得到了无法理解的查询。

我已经尝试将后端字段作为日期字段和文本字段,并测试了各种查询组合和日期格式,但没有成功。非常感谢任何帮助。

这是搜索按钮代码:

var query = new Array("");
var cTerms = 0;

// Field 1
var search01 = getComponent("searchcustomReservationField01").getValue();
if (@Contains(@Text(search01),"any city")){"";}
else {query[cTerms++] = '[customReservationField01]="' + search01 +'"'};  

// Field 2
var search02 = getComponent("searchcustomReservationField02").getValue();
if (@Contains(@Text(search02),"any city")){"";}
else {query[cTerms++] = '[customReservationField02]="' + search02 + '"'};

// Date 1
var formatter = new java.text.SimpleDateFormat("d.M.yyyy");
query[cTerms++] = 'FIELD freeDaysPool = ' + formatter.format(getComponent("searchcustomDateField01").getValue());

// if query is still empty, we fill it with asterisk
if(query == "" || query == null){
    query[cTerms++] = "*";
}
// make all as string
qstring = query.join(" AND ").trim();
sessionScope.searchString = qstring;

它将return查询为:

[customReservationField01]="Oslo" AND [customReservationField02]="Oslo" AND FIELD freeDaysPool = 6.2.2015

公式中的 AFAIK 日期值(查询是公式)必须像

[06.02.2015]

比较它们。只需尝试在 Notes Client 中使用您的公式来进行全文搜索。如果你得到结果并且没有错误,你就找到了正确的格式。这至少是我测试查询的方式,因为我多年来无法提醒语法:-D

感谢大家的帮助!似乎 Domino 将字段类型保留为日期字段,即使您将其更改回文本字段(从注释 FTsearch 中注意到)。我创建了全新的文本字段,并将日期添加为 dd.MM.yyyy 格式的字符串。我还将它们作为字符串进行搜索,并且效果很好。 更改后的代码位现在如下所示:

// Date 1
var formatter = new java.text.SimpleDateFormat("dd.MM.yyyy");
query[cTerms++] = '[freeDays] CONTAINS "' + formatter.format(getComponent("searchcustomDateField01").getValue())+'"';