关于Notes全文检索

NotesDatabase、NotesView、NotesViewEntryCollection等都有FtSearch()方法。

FtSearch除了支持一般关键字检索之外,还支持基于运算符的查询,形如:

FIELD XXX CONTAINS YYY。

对于逻辑操作符CONTAINS要注意:

1) 当YYY是单字节英文时,若要进行模糊匹配,可以使用星号*来完成,形如:

FIELD fldname CONTAINS *bj*

2) 当YYY时双字节中文时,则形如“*北京*”这种形式将什么都检索不到,只能是下面的格式才可以:

FIELD fldname CONTAINS 北京

另外,基于数字、时间等格式的检索经常报错:

FIELD fldcreatedtime > 2005-03-30

Notes error: Relational operators are not supported in text fields.

这可能有两种原有:

1) 域fldcreatedtime最初创建的时候可能指定成缺省的文本域类型并保存了。而以后将它修改成什么类型都改变不了该域的全文检索类型,解决的办法可能只能从数据库底层将该域彻底删除。

2) 域fldcreatedtime最初创建的时候是正确的类型(日期/时间),而在程序中误将文本值赋给它了。只要将原有的文档都删除掉,并在新程序中赋给该域正确的变量类型就可以了。

阅读更多
个人分类: Lotus
下一篇解决div层被select下拉框遮盖的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭