Warning: session_start(): open(/var/lib/php/sessions/sess_4aov56ol0jkitasbne9i6epshd, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
cprint SnippetsDeepWordIndex {
transient DeepWordIndex wordIndex; // string = snippet ID
switchable S regexp = "\\w+|\\S"; // a word or a non-space
start-thread {
dm_reloadOnFieldChange regexp();
time "Make double word index" {
print("Making index");
new DeepWordIndex wordIndex;
wordIndex.regexp = regexp;
wordIndex.useHashMaps = true;
wordIndex.sortEntries = true;
for (virtual CSnippet sn : dm_allSnippets()) {
S snippetID = (S) rcall snippetID(sn);
S text = cast rcall text(sn);
wordIndex.add(snippetID, text);
}
wordIndex.doneAdding();
setField(+wordIndex);
}
infoBox("Indexed " + nWords(wordIndex.numWords()));
}
// API
Iterable>> snippetPreSearch_withPositions(S query, O... _) {
long nanos = nanoTime();
Iterable>> l;
//time "lookup" {
l = wordIndex == null ? null : wordIndex.lookupString_withPositions(query, _);
//}
//print((nanoTime()-nanos) + " nanos in pre");
ret l;
}
}