XPage typeahead需要太长时间

时间:2015-12-30 08:34:31

标签: xpages typeahead

当我们尝试使用ftSearch预先输入时,完成时间太长(要在屏幕上显示)。 ftsearch同时完成

[0D88:000B-0B44] 30.12.2015 10:03:06   HTTP JVM: Start= 30.12.2015 10:03
[0D88:000B-0B44] 30.12.2015 10:03:06   HTTP JVM: Finish= 30.12.2015 10:03

但是在具有typeahead属性的inputbox中,结果返回超过5秒。我的意思是需要太长时间。

是否有任何建议如何减少时间

'fldDefName = inthe inputbox there is a option for ftSearch named "Var" colNumber = Column Number for results. I generally user [0]
 function getTypeAheadList(vName,frmName,fldName,fldDefName,colNumber) 
{
 var searchView:NotesView = database.getView(vName);'
    var query = "(FIELD Form CONTAINS "+ frmName + " AND FIELD " + fldName + " CONTAINS *" + fldDefName +"*)";
    print("Query= "+query);
    var searchOutput:Array = ["å","åå"];
    var hits = searchView.FTSearch(query);
    var entries = searchView.getAllEntries();
    var entry = entries.getFirstEntry();

    for (i=0; i<hits; i++) 
    {
        searchOutput.push(entry.getColumnValues()[colNumber]);
        entry = entries.getNextEntry();
    }
    searchOutput.sort();

    var result ="<ul><li><span class='informal'></span></li>";
    var limit = Math.min(hits,50);

    for (j=0; j<limit; j++) 
    {
        var name = searchOutput[j].toString();
        var start = name.indexOfIgnoreCase(lupkey)
        var stop = start + lupkey.length;

        name = name.insert("</b>",stop).insert("<b>",start);
        result += "<li>" + name + "</li>"; 
    }

    result += "</ul>";
    return result;

1 个答案:

答案 0 :(得分:3)

使用

将FTSearch返回的文档数量减少到50
var hits = searchView.FTSearch(query, 50);

现在搜索结果可能包含例如5000个文档,需要时间将它们推入searchOutput并进行排序。无论如何,你将提示减少到50 ......

相关问题