7.9.4.2. Filterregeln für die Indizierung

[Hinweis]Hinweis

In der Regel wird ein Katalog komplett indiziert, sodass keine Filterregeln benötigt werden.

Will man innerhalb eines Kataloges nicht alle Teile indizieren, so kann man dafür Filter-Regeln definieren.

Hier ist ein Beispiel:

[settings]
GenerationFilterRules=ScriptFilterRule, ScriptFilterRuleErp

[GenerationFilterRule_ScriptFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineScriptCallbackFile=filter.vbs
LineScriptCallbackFunction=checkLine
IndexTypes=Standard

[GenerationFilterRule_ScriptFilterRuleErp]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineScriptCallbackFile=filterErp.vbs
LineScriptCallbackFunction=checkLine
IndexTypes=Erp

Skript filter.vbs:

function checkLine(table)
  dim nb = table.selectedRow.getNB()
  checkLine = (InStr(nb, "photo_noerp ") = 0
end function

Skript filter_erp.vbs:

function checkLine(table)
  dim nb = table.selectedRow.getNB()
  checkLine = (InStr(nb, "photo_erp ") = 0
end function

[Wichtig]Wichtig

Wenn checkLine true zurückgibt, wird die Zeile rausgefiltert, also nicht für die Fotosuche indiziert. In diesem Beispiel hätten also alle Teile, die im NB photo_noerp enthalten und alle Teile mit ERP-Nummer, die im NB photo_erp enthalten, Fingerprints für die Fotosuche.

Alternativ zu Skript-Callbacks kann man auch über RegExp filtern:

[GenerationFilterRule_LineFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineFilterCount=1
LineFilterVar0=NB
LineFilterRegExp0=^(?!.*24041 Lg ).*
Conjunction=AND
IndexTypes=Standard

Man kann diese Filter auch auf Projektebene definieren:

[GenerationFilterRule_ProjectFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
IndexTypes=Standard
PrjRegExp=^(?!din_24041_lg\.prj$).*