Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core JavaScript-API


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)');