【问题标题】:multiple search in domino documents多米诺文档中的多重搜索
【发布时间】:2019-06-30 06:00:21
【问题描述】:

在按钮的onclick事件中,我想用ssjs搜索一个有多个条件的notes文档。

我有一个包含几个字段的表单。现在我想找到一个注释文档,其中 field a="123" and field b="456" field c="789" and field d >"A123456" ,然后我想阅读字段 e 的内容。

如果是视图中的搜索,我会使用类似:

var tmpArray = new Array("");
var cTerms = 0;
if(viewScope.fong != null & viewScope.fong != "") {
tmpArray[cTerms++] = "(FIELD Site = \"" + viewScope.fong + "\")"
}
if(@Text(viewScope.sDate) != null & @Text(viewScope.sDate) != "") {
tmpArray[cTerms++] = "(FIELD StartDate = \"" + @Text(viewScope.sDate) + "\")"
}
qstring = tmpArray.join(" AND ").trim();
viewScope.queryString = qstring;
return qstring 

如果我只有 1 个条件,我会使用 @DbLookup(仍然如何选择文档 >“A123456”?)

在 ssjs 中最好的方法是什么?

更新

尝试使用 FTSearch ,但似乎在搜索键 "FIELD d > A123456" 中,似乎不起作用

其他更新

var dc = db.FTSearch("FIELD a=123 and FIELD b =456 and FIELD d =A123456"); 似乎工作,但

var dc = db.FTSearch("FIELD a=123 and FIELD b =456 and FIELD d >A123456");没有。它给出错误:调用方法 NotesDatabase.FTSearch(string) null

发生异常

【问题讨论】:

  • 如果你确实写了“FIELD d > A123456”,那么只有当你有一个名为 A123456 的变量并且它包含的值大于(无论在这种情况下意味着什么)d 时,测试才会成功。你可能想要 d > "A123456"
  • 这不起作用。然后我收到一条错误消息:“调用方法 NotesDatabase.FTSearch(string) null 发生异常”,当我用 = 更改 > 并删除“”它可以工作,但当然没有给出正确的结果
  • d > "A123" 不起作用,因为 A123 是一个字符串,不能与更大或更小进行比较。如果您已经在 10.0.1 上,您可以看看 DQL

标签: lotus-domino xpages-ssjs


【解决方案1】:

如果你想使用比较运算符>和NotesDatabase.Search方法而不是FTSearch。搜索速度较慢,并且无法访问非摘要(即富文本)字段中的数据,但它具有您可以在视图选择公式中使用的所有相同功能。

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 2013-04-19
    • 2012-05-30
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多