我的要求是收集的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