Although there are a number of built-in actions for indexing, the following scripts may be used. The scripts are listed as examples.
Note:
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// This script can be used to create an initial index.
// All objects, configured in the Mindbreeze Configuration object are
// sent to Fabasoft Mindbreeze Enterprise.
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Define Logfile.
// Directory "C:\Logs" must exist.
var datetime = coort.Parse(
cootx,
"STRING(coort.GetCurrentDateTime(this))",
2).Evaluate3(cootx, null, indexservice).getItem(0);
datetime = datetime.replace(new RegExp(/:/g), "-");
var logfilename = "C:\\Logs\\Index-" + datetime + ".log";
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
// Set indexing parameters.
// Objects are processed in chunks of 400 objects, 4 threads are used.
var meth = indexservice.GetMethod(cootx, "BuildIndex");
meth.SetParameter2(1, "INTEGER", 400); // chunksize: 400
meth.SetParameter2(4, "INTEGER", 4); // threadcount: 4
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// This script can be used to recover an index by a specific time.
// All objects, indexed after the specified date, are marked for re-indexing.
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Define Logfile.
// Directory "C:\Logs" must exist.
var datetime = coort.Parse(
cootx,
"STRING(coort.GetCurrentDateTime(this))",
2).Evaluate3(cootx, null, indexservice).getItem(0);
datetime = datetime.replace(new RegExp(/:/g), "-");
var logfilename = "C:\\Logs\\RecoverIndex-" + datetime + ".log";
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
// Mark all objects indexed after "2005-01-01 00:00:00" for reindexing.
// Objects are processed in chunks of 1000 objects, 4 threads are used.
var meth = indexservice.GetMethod(cootx, "RecoverIndex");
meth.SetParameter(1, "DATETIME", "2005-01-01 00:00:00");
meth.SetParameter(2, "INTEGER", 1000);
meth.SetParameter(5, "INTEGER", 4);
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// This script can be used to re-index objects.
// Less objects are processed in common, so less locks will be visible to users.
// To specify the date of the last complete index run improves performance.
var currdate = new Date();
// Define Logfile.
// Directory "C:\Logs" must exist.
var logfilename = "C:\\Logs\\Re-Index-" + FormatDate(currdate, true) + ".log";
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Correct date according to your desired delta indexing interval.
var hoursToSubtract = 1;
// Amount of hours considered to set date of last index run.
var fullIndexHour = 23;
// Specifiy the hour to start a complete index run (till last complete index run).
var lastIndex = "2009-00-00 00:00:00";
// Date of last complete index run.
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
var hour = currdate.getHours();
if (hour == fullIndexHour){
indexFrom = lastIndex;
}
else {
currdate.setHours(hour - hoursToSubtract);
indexFrom = FormatDate(currdate, false);
}
// Set indexing parameters.
// Objects are processed in chunks of 20 objects, 4 threads are used.
coort.Trace("IndexFrom: " + indexFrom);
var meth = indexservice.GetMethod(cootx, "BuildIndex");
meth.SetParameter2(1, "INTEGER", 20);
meth.SetParameter2(2, "DATETIME", indexFrom);
meth.SetParameter2(4, "INTEGER", 4);
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}
function FormatInt(input){
return (input < 10) ? "0" + input : input;
}
function FormatDate(input, filename){
return input.getFullYear() + "-" + FormatInt(input.getMonth()+1) + "-" +
FormatInt(input.getDate()) + ((filename==true) ? "_" : " ") +
FormatInt(input.getHours()) + ((filename==true) ? "_" : ":") +
FormatInt(input.getMinutes()) + ((filename==true) ? "_" : ":") +
FormatInt(input.getSeconds())
}
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// This script can be used to create an initial index.
// The date limit enables a separation objects to index.
// This can be used to start multiple independent indexing runs
// or to index objects in parallel on multiple servers.
// All objects, configured in the Mindbreeze Configuration object are
// sent to Fabasoft Mindbreeze Enterprise.
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Define Logfile.
// Directory "C:\Logs" must exist.
var datetime = coort.Parse(
cootx,
"STRING(coort.GetCurrentDateTime(this))",
2).Evaluate3(cootx, null, indexservice).getItem(0);
datetime = datetime.replace(new RegExp(/:/g), "-");
var logfilename = "C:\\Logs\\BuildIndex-" + datetime + ".log";
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
// Set indexing parameters.
// Objects are processed in chunks of 400 objects, 4 threads are used.
var meth = indexservice.GetMethod(cootx, "BuildIndex");
meth.SetParameter2(1, "INTEGER", 400);
meth.SetParameter2(2, "DATETIME", "<date from (objchangedat)>");
meth.SetParameter2(3, "DATETIME", "<date till (objchangedat)>");
meth.SetParameter2(4, "INTEGER", 4);
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// If the list of file extensions to index is modified after a successful
// indexing run, this script has to be executed first.
// Afterwards file extension can be added in the filter service and the
// indexing can be restarted.
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Define Logfile.
// Directory "C:\Logs" must exist.
var datetime = coort.Parse(
cootx,
"STRING(coort.GetCurrentDateTime(this))",
2).Evaluate3(cootx, null, indexservice).getItem(0);
datetime = datetime.replace(new RegExp(/:/g), "-");
var logfilename = "C:\\Logs\\AddFilterExtensions-" + datetime + ".log";
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
// Mark all objects indexed after "2000-01-01 00:00:00" for re-indexing.
// Objects are processed in chunks of 1000 objects, 4 threads are used.
var meth = indexservice.GetMethod(cootx, "RecoverIndex");
meth.SetParameter2(1, "DATETIME", "2000-01-01 00:00:00");
meth.SetParameter2(2, "INTEGER", 1000);
meth.SetParameter2(4, "STRING",
".objlogcontmap.objlogmapindexedat=1900-01-01 00:00:00");
meth.SetParameter2(5, "INTEGER", 4);
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}
//LANGUAGE="JavaScript"
/*==========================================================================
Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1995-2009.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
Urheber festgelegten Stelle in der Funktion des Computerprogramms
angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
==========================================================================*/
// Occasionally it can be required to reset objects of a specific class after
// an index run, to re-index these objects (e.g. adding a new property to index).
// Get the index service by object address.
var indexservice = coort.GetObject("<COOADDRESS>");
// Define Logfile.
// Directory "C:\Logs" must exist.
var datetime = coort.Parse(
cootx,
"STRING(coort.GetCurrentDateTime(this))",
2).Evaluate3(cootx, null, indexservice).getItem(0);
datetime = datetime.replace(new RegExp(/:/g), "-");
var logfilename = "C:\\Logs\\RecoverObjects-" + datetime + ".log";
cootx.SetVariable2("COOSYSTEM@1.1", 2, "BOOLEAN", true);
cootx.SetVariable2("COOSYSTEM@1.1", 14, "STRING", logfilename);
// Mark all objects indexed after "2000-01-01 00:00:00" for re-indexing.
// Objects are processed in chunks of 1000 objects, 4 threads are used.
var meth = indexservice.GetMethod(cootx, "RecoverIndex");
meth.SetParameter2(1, "DATETIME", "2005-01-01 00:00:00");
meth.SetParameter2(2, "INTEGER", 1000);
meth.SetParameter2(3, "OBJECT", "<COOADDRESS of object class >");
meth.SetParameter2(5, "INTEGER", 4);
try {
indexservice.CallMethod(cootx, meth);
}
catch(e) {
coort.Trace(e);
}