1

我有点陷入僵局。我正在使用 xPages 在 Domino 中工作,并且我试图允许通过包含响应文档的视图进行全文搜索,但包括与视图或数据表中的查询匹配的任何响应的父文档。目前我只是在视图数据源中使用搜索词,然后在视图控件中使用该数据源,但欢迎任何可行的解决方案。父文档上可能有其他搜索条件。

有任何想法吗?

4

1 回答 1

1

Richard,您不能直接将视图用作数据源,因此您不会使用视图控件。您可以使用数据表或(可能更好,因为它为您提供完整的布局控制)重复控制。

对代码中的视图运行搜索:

   var v = database.getView("yourView")
   //var result = database.FTSearch(...)
   var result = v.FTSearchSorted(...) // or FTSearch
   var datasource = [];
   var parent;
   for (var doc in result) {
        addResult(doc, datasource);            
        if (doc.isResponseDoc()) {
            parent = doc.getParentDocument();
            addResult(parent, datasource);
            // Careful here - if the parent is part of the resultset on its own
            parent.recycle(); 
        }
        doc.recycle();
   }
   try {
      result.recycle();
      v.recycle();
   } catch (e) {
     // We suffer silently
   }
   return datasource;

   function addResult(doc, datasource) {
        var oneResult = {};
        //Adjust that to your needs
        oneResult.subject = doc.getItemValueString("Subject");
        oneResult.unid = doc.getUniversalId();
        datasource.push(oneResult);
   }

请参阅FTSearchSorted文档。我在脑海中输入了代码,所以可能会有一些语法混乱,但你明白了不要将文档或 Notes 对象返回到 XPage 并明智地使用 recycle()。

于 2013-03-06T01:20:01.857 回答