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