如何使用Lotus Notes文档搜索的搜索方法

时间:2012-03-19 12:07:47

标签: lotus-notes

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

  • 所有这些条款,
  • 任何这些条款
  • 或者没有这些条款。

我正在使用Database.FTsearch(...)方法,为特定短语生成查询并将查询传递给该方法。我发现还有另一种方法:Database.search(string arg1)。如何在上述三种情况下使用该方法?

3 个答案:

答案 0 :(得分:4)

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

@Contains(Body; "Word1") || @Contains(Body; "Word2") || @Contains(Body; "Word3")

如果三个单词中的任何一个在正文中,那么该文档将与文档匹配。要使它与所有单词匹配,只需将OR(||)更改为AND(&&)。

请注意,此方法搜索没有索引的所有文档,如果有数千个文档,则可能会非常慢。 FTSearch method速度更快,但要求您启用全文索引才能高效工作。

答案 1 :(得分:0)

Domino wiki有an excellent discussion of when to use each search method and how to use them

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

另请注意,翻译FT查询可能并不完全是直截了当的。如果要构建简单查询,例如" Term1或Term2 OR Term3",则此类查询将搜索每个文档中的每个字段。这需要一个相当复杂的查询来近似Database.search,它可能表现不佳。如果您正在搜索文档中的特定字段以获取值,那么Ken会在回复中描述,这样更直接。如果您要搜索的字段是富文本,则还需要使用@Abstract,因为@Contains仅适用于纯文本。

答案 2 :(得分:-1)