Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

DocumentTextObjects löschen und neu indizieren (Skript)

Das folgende Skript löscht DocumentTextObject und sendet dieses neu durch den Index. Je nach Datenmenge verändert sich die Laufzeit des Skripts.

Hinweis: Sie benötigen die Solr-Suchmaschine in agorum core, um das Skript benutzen zu können.

// DocumentTextObjects löschen
// Unten in den Aufruf: clear(..) das entsprechende Suchmuster einstellen.
// Mit diesem Skript können Sie dasselbe durchführen wie mit dem desk4web-Tool "Delete Document Text of objects".

let IndexHelper = Packages.agorum.roi.searchengine.IndexHelper;

let objects = require('common/objects');
let transaction = require('common/transaction');

function clear(query) {
  let count = 0;

  objects.query(query).iterate('uuid', row => {
    let object = objects.tryFind(row.uuid);
    if (!object) return;

    // Prüft, ob "documentText" bereits vorhanden ist.
    if ((object.text || '').trim().length > 0) return;

    transaction(() => {
      // disable realTime indexing in current transaction
      IndexHelper.disableRealtimeIndex();

      // Entfernt den existierenden "documentText".
      object.deleteDocumentText();

      objects.reIndex(object);

      ++count;
    });
  });

  return count;
}

// Suche definieren, für welche Objekte der Dokumenttext weggeworfen werden soll.
clear('nameextension:(html OR htm OR txt OR json OR xml)');