Lotus notes 有人能帮我处理调用方法NotesDatabase.FTSearch(string)时发生的异常吗

Lotus notes 有人能帮我处理调用方法NotesDatabase.FTSearch(string)时发生的异常吗,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我试图做一个数据库全文搜索,并努力让它工作。 由于我正在处理日期字段,我删除了全文索引,将所有空白日期字段设置为虚构的日期3/15/2050,压缩数据库,然后重建全文索引 但是,我仍然得到此查询字符串的错误: 字段表单包含“Opp”,字段主题包含“A”,字段日期团队>=2019年3月1日,字段日期团队,这可能有助于: 据我所知,日期值必须在[]中才能工作。 一个好的开始是使用FT搜索功能在客户端测试公式,而不是修改代码 顺便说一句:您可以缩短公式,省略字段关键字并将字段名也放在[]中。您没有在异

我试图做一个数据库全文搜索,并努力让它工作。 由于我正在处理日期字段,我删除了全文索引,将所有空白日期字段设置为虚构的日期3/15/2050,压缩数据库,然后重建全文索引

但是,我仍然得到此查询字符串的错误: 字段表单包含“Opp”,字段主题包含“A”,字段日期团队>=2019年3月1日,字段日期团队,这可能有助于: 据我所知,日期值必须在[]中才能工作。 一个好的开始是使用FT搜索功能在客户端测试公式,而不是修改代码


顺便说一句:您可以缩短公式,省略字段关键字并将字段名也放在[]中。

您没有在异常中发布措辞,也没有说明您使用的是哪个Domino版本,因此这有点像是猜测

可能是UNK表Domino的内部字段目录认为字段是字符串字段。存储在字段中的第一个值是FT索引用于确定索引数据类型的类型。当然,任何类型都可以存储在NSF数据中,但FT代码试图将这种类型的搜索限制在它认为有效的字段中

现在,如果这些包含的值实际上是=值,那么DQL可以帮助您。我们将把CONTAINS作为动词放到V11中的DQL中,但它确实可以执行日期范围术语。只是一个想法


-约翰·柯蒂斯(John Curtis)

我在邮件数据库中尝试了以下方法:

(FIELD Form CONTAINS "Memo") AND (FIELD Subject CONTAINS "the") AND (FIELD PostedDate >= 3/1/2019) AND (FIELD PostedDate <= 30/6/2019)

它工作正常。因此,双引号而不是单引号,您可能需要检查您的日期格式是否与服务器的日期格式一致。

我所采取的方法是正确的。然而,问题是,我的更新代理设置所有日期字段时有一个输入错误,因此它没有将正确的字段名设置为日期。我的疏忽。一旦我发现并纠正了它,我就回到了我的步骤,现在一切都按计划进行了。感谢大家帮助我找到解决方案

对于其他人,我采取了以下步骤: 打开数据库属性并删除全文索引 在控制台上运行此命令以压缩db:lo compact文件夹/db.nsf-c 对所有文档运行代理,将日期字段设置为虚构的日期 再次打开数据库属性并创建新的全文索引 完成后,在控制台上运行以下命令:load updall-f folder/db.nsf
再次运行代理将虚构的日期重置为空白

谢谢你的建议,奥利弗。我以前从未使用过[]表示日期值,但我还是尝试过,但没有成功。我确实看过你提到的那个网站,但没有多大帮助,因为很少有关于日期的例子。我在许多其他客户应用程序中使用ftsearch,但这是唯一一个给我带来麻烦的应用程序。通常,只要我正确设置FTIndex,它就可以正常工作。FIELD Form包含Opp,FIELD Topic包含works FIELD Form包含Opp,FIELD Topic包含FIELD Dateam>=2019年1月3日无效Hi John,客户使用的是9.0.1FP8。在哪里可以更好地描述错误?我在控制台上看到的只是我在文章标题中显示的错误。我也想到了那张不干净的桌子。这就是为什么我删除了索引,将所有日期字段设置为虚构的日期,并在重建索引之前进行压缩。欢迎John,请在继续Stackoverflow旅行之前阅读。您是如何将所有日期字段设置为虚构的日期的?有剧本吗?我的第一个猜测是,您已经将这些字段设置为文本字段,而不是日期字段。场地属性怎么说?谢谢Richard。是的,我用lotusscript设置了它们。它们被正确设置为日期/时间,如文档属性中所示。然而,我必须设置7个不同的字段——其中一个是DateTeam。我已经确认我的日期被改为2050年3月15日,但不是那个特别的日期——因为我在脚本中拼错了!啊!所以,今晚我必须重新创建索引,然后我可能就可以开始了。谢谢你的来电。祝你一周愉快。