Lotus notes 如何使用搜索方法进行Lotus Notes文档搜索

Lotus notes 如何使用搜索方法进行Lotus Notes文档搜索,lotus-notes,Lotus Notes,我的要求是收集Lotus Notes文档,对于给定的搜索词集,这些文档包含: 所有这些术语 这些术语中的任何一个 或者这些术语都没有 我正在使用Database.FTsearch(…)方法,为特定短语生成查询并将查询传递给该方法。我发现还有另一种方法:Database.search(字符串arg1)。如何将该方法用于上述三种情况?将公式字符串作为其第一个参数。您可以传递一个公式,例如: @Contains(Body; "Word1") || @Contains(Body; "Word2")

我的要求是收集Lotus Notes文档,对于给定的搜索词集,这些文档包含:

  • 所有这些术语
  • 这些术语中的任何一个
  • 或者这些术语都没有
我正在使用
Database.FTsearch(…)
方法,为特定短语生成查询并将查询传递给该方法。我发现还有另一种方法:
Database.search(字符串arg1)
。如何将该方法用于上述三种情况?

将公式字符串作为其第一个参数。您可以传递一个公式,例如:

@Contains(Body; "Word1") || @Contains(Body; "Word2") || @Contains(Body; "Word3")
如果这三个词中的任何一个在正文中,它将与文档匹配。要使其与所有单词匹配,只需将ORs(| |)更改为ANDs(&&)

请注意,此方法搜索所有没有索引的文档,如果有数千个文档,则搜索速度可能非常慢。速度更快,但需要打开全文索引才能有效地工作。

Domino wiki提供了

请记住,
FTSearch
的索引不会立即更新,即使全文索引设置为“立即更新”。如果需要最新的结果,则需要首先调用
数据库.updateFTIndex
(这将影响性能)或使用
数据库.search


还要记住,翻译您的FT查询可能并不完全直接。如果您正在构建诸如“Term1或Term2或Term3”之类的简单查询,则此类查询将搜索每个文档中的每个字段。这将需要一个相当复杂的查询才能在
数据库中找到近似值。搜索
可能会执行得很差。如果您在文档中搜索特定字段以查找值,那么就更简单了,正如Ken在回答中所描述的那样。如果要搜索的字段是富格文本,则还需要使用
@Abstract
,因为
@包含的内容仅适用于纯文本

我发现以下链接很有用

a) 搜索相关维基

b) FTSearch方法详细信息和示例


如果FTSearch是一个更快的解决方案,您为什么会问搜索?你对FTSearch有问题吗?作为我的测试,应该是@Contains(Body;“Word1”)|@Contains(Body;“Word2”)|@Contains(Body;“Word3”)。@Matt可能这取决于我们是在讨论Java中的公式还是在LotusScript中的公式