欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

ls代理搜索文档结果的排序有关问题

更新时间: 2014-01-05 03:00:37 责任编辑: Author_N1

 

LS代理搜索文档结果的排序问题

Dim vc As NotesDocumentCollection
Dim view As NotesView
Set view = db.GetView("视图名")
Dim formula As String

'对nsf数据库中的文档的搜索主要有以下几种方式:
formula = {Form = "mainform" & sys_SoftDelete != "1"}
db.Search(formula,Nothing,0)
formula = { FIELD Form Contains mainform and not Field sys_SoftDelete  Contains "1"} 
vc.Ftsearch(formula, 0) 
vc = view.GetAllDocumentsByKey(SearchKey,true) 
vc = view.GetAllEntriesByKey(SearchKey ,True)

其中GetAllDocumentsByKey和GetAllEntriesByKey依赖于视图,GetAllDocumentsByKey搜索结果不保留视图的排序,GetAllEntriesByKey搜索结果保留视图的排序。
但实际应用中模糊搜索比按指定个数的关键字搜索更常用到,比如:列出一堆输入框,输入值非空时才算一个搜索条件,为空时忽略。但是db.Search和vc.Ftsearch的搜索结果都不能按指定n个域来排序,这让我灰常纠结
网上搜了下,有个方法说是把搜索结果放进一个已设计好排序的文件夹,然后再输出。这个方法倒是能有序输出,但文件夹要先建好,搜索一次并输出后不能删了文件夹,否则下一次运行LS代理就没有这个排好序的文件夹;但如果不删文件夹,搜索很多次以后,文件夹里的文档就越来越多了,就输出了不符合当前搜索条件的以前搜出来的文档,肿么办?
我现在灰常想写SQL语句select * from tablename order by 1 asc,2 desc,3 怎么破?
--参考方法--
你用代码对返回的这个vc进一步排序即可(可以用那些经典排序算法,比如冒泡排,快速排序),到网上搜一下: domino/notes sort search documentcollection ,比如这个:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/02b266a5e5d6b90185256bbf0076813b?OpenDocument
--参考方法--
不要这么说,毕竟每个系统都有其擅长的部分。如果你的database不需要full text index的话删掉database的index,然后用notesView.FTSearch,搜索结果和view的排序就一样了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:00:37
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/17196/
本文WWW.DOC100.NET DOC100.NET版权所有。