我的要求是收集的Lotus Notes其中,对于一个给定的搜索项,包含两种文件:如何使用搜索方法对Lotus Notes文档搜索
- 所有这些条款,
- 任何这些条款
- 或者没有使用这些术语。
我正在使用Database.FTsearch(...)
方法,通过为特定短语生成查询并将查询传递给该方法。我发现还有另一种方法:Database.search(string arg1)
。我如何在上述三个条件中使用该方法?
我的要求是收集的Lotus Notes其中,对于一个给定的搜索项,包含两种文件:如何使用搜索方法对Lotus Notes文档搜索
我正在使用Database.FTsearch(...)
方法,通过为特定短语生成查询并将查询传递给该方法。我发现还有另一种方法:Database.search(string arg1)
。我如何在上述三个条件中使用该方法?
的NotesDatabase search method取式字符串作为其第一个参数。您可以通过如下公式:
@Contains(Body; "Word1") || @Contains(Body; "Word2") || @Contains(Body; "Word3")
如果三个单词中的任何一个在主体中,那么将匹配文档。为了使匹配对攻战,只是改变的OR(||),以与运算(& &)。
注意,此方法通过一个没有索引的所有文件搜索,并且可能会很慢,如果有数以千计的文件。 FTSearch method速度更快,但要求您打开全文索引以高效工作。
多米诺wiki有an excellent discussion of when to use each search method and how to use them。
请记住,即使将全文索引设置为“立即更新”,FTSearch的索引也不会立即更新。如果您需要最新的结果,您需要先调用Database.updateFTIndex(这会影响性能)或使用Database.search。
还铭记保持这种翻译您的FT查询可能不完全明了。如果您正在构建诸如“Term1 OR Term2 OR Term3”之类的简单查询,则此类查询将搜索每个文档中的每个字段。这将需要一个相当复杂的查询来近似Database.search,它可能表现不佳。如果您在文档的某个特定字段上搜索某个值,则更为直接,正如Ken在其回复中所述。如果您正在搜索的字段是富文本,则您还需要使用@Abstract,因为@Contains仅适用于纯文本。
如果FTSearch是更快的解决方案,是什么让你询问搜索?你对FTSearch有问题吗? – 2012-03-20 11:13:12