!7 cmodule AgiBlueSearch > DynPrintLog { start { dm_registerAs_directLink('agiBlueSearch); warmUp(); } void warmUp thread { repeat 9 { search("test", quiet := true); } search("test"); // will print benchmark } // API void searchAndPost(S query) q { agiBlue_server_postSearchResult(query, collect q(search(query))); } L search(S query, O... _) { print("Searching " + query); long time = sysNow(); virtual Concepts concepts = agiBlue_server_mainConcepts(); L pages = cast call(concepts, 'conceptsOfType, 'Page); ScoredSearcher searcher = new(query); searcher.maxResults = 100; for (virtual Page page : pages) searcher.put(page, getString q(page)); L result = searcher!; if (!boolPar quiet(_)) done2("Searched " + query, time); ret result; } }