Lotus domino FTSearch 查询

Posted

技术标签:

【中文标题】Lotus domino FTSearch 查询【英文标题】:Lotus domino FTSearch query 【发布时间】:2013-04-18 00:47:10 【问题描述】:

FTSearch 方法中的查询有问题。我正在使用像" FIELD fldContractorCode = \"K005152\"" 这样的查询,这很好,但现在我需要再添加一个查询选项。我尝试使用:

"form= "formcontractor" & FIELD fldContractorCode = "K005152""
"Form = "formcontractor" & FIELD fldContractorCode = "K005152""
"FORM = "formcontractor" & FIELD fldContractorCode = "K005152""
"form= "formcontractor" AND FIELD fldContractorCode = "K005152""
"Form = "formcontractor" AND FIELD fldContractorCode = "K005152""
"FORM = "formcontractor" AND FIELD fldContractorCode = "K005152""

但我总是收到查询无法理解的错误。

如何使这个查询工作?

【问题讨论】:

【参考方案1】:

如果你真的使用 FTSearch,那么公式应该是这样的:

FIELD form ="formcontractor" & FIELD fldContractorCode = "K00515"

您需要在每条语句前面加上“FIELD”- 语句... 更短的形式是:

[form] = "formcontractor" & [fldContractorCode] = "K00515"

您甚至可以在 FTSearch 中省略 ""- 符号。

但我真的不建议使用 FTSearch,因为它始终是“包含”- 搜索(查询也会找到 K00515xxx)。

最好使用 NotesDatabase- 类的 .search- 方法,写成这样:

db.Search( Form ="formcontractor" & fldContractorCode = "K00515", Nothing, 0 )

那么您肯定只返回包含您搜索的数据的文档。而且在速度问题上,它应该只是稍微慢一点。

【讨论】:

db.Search 慢得多。我会不惜一切代价避免这种情况。另一种解决方案是使用视图查找,使用 col.GetDocumentByKey(ket$, True) 你当然是对的,那个 db.Search 比较慢,但是只要是在后台代理中使用,我们通常讲秒(或者小数分钟,如果数据库是 REALLY大(100.000 个文档及更多))。当然,您不想打扰用户等待该结果,当然 GetDocumentByKey 会更快,但在某些情况下,您根本不想(或不允许)在目标数据库...

以上是关于Lotus domino FTSearch 查询的主要内容,如果未能解决你的问题,请参考以下文章

怎么学lotus domino

lotus domino设置

Lotus Domino/Notes的概述

Lotus domino 都用啥编程语言啊?

XPages Development - Lotus Domino 哪个版本最好?

Lotus Domino 搜索公式