2013-04-24 65 views
0

我有一个问题,在FTSearch方法查询。我正在使用像" FIELD fldContractorCode = \"K005152\""这样的查询,这很好,但现在我需要添加一个选项来查询。我试图使用:莲花多米诺骨牌FTSearch查询

"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"" 

但我总是得到错误,查询是不可理解的。

如何使这个查询工作?

回答

3

如果你真的使用FTSearch,则该公式将有看起来像:

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

您需要“现场” - 声明在每一个语句的前面...... 一个较短的形式是:

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

您甚至可以在FTSearch中省略“” - 标志。

但我真的不会推荐使用FTSearch,因为它总是一个“包含” - 搜索(查询也会发现K00515xxx)。

更好地利用NotesDatabase-类的.search-方法,写它喜欢:

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

那么你一定要只返回包含正是你寻找的数据文件。而在速度方面,它应该稍微慢一些。

+1

db.Search慢得多。我会不惜一切代价避免这种情况。 另一个解决方案是使用col.GetDocumentByKey(ket $,True)来使用视图查找 – 2013-04-30 15:31:21

+0

您当然是对的,db.Search比较慢,但只要它在后台代理中使用,我们通常会谈论几秒钟(或者如果数据库非常大(100.000文档及更多),则需要几分钟)。当然,你不会想要等待这个结果而困扰用户,当然GetDocumentByKey会更快,但在某些情况下,你根本不想(或不允许)在目标数据库... – 2013-04-30 16:44:01

相关问题