【问题标题】:Lotus domino FTSearch queryLotus domino FTSearch 查询
【发布时间】: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""

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

如何使这个查询工作?

【问题讨论】:

    标签: lotus-domino


    【解决方案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 会更快,但在某些情况下,您根本不想(或不允许)在目标数据库...
    猜你喜欢
    • 2013-03-26
    • 2013-02-28
    • 2012-05-12
    • 2019-01-07
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多