Как удалить запись из индекса Endeca с помощью манипулятора записей

I have a test case in endeca in which I have to drop record if a particular word is present in one Url attribute of a record.
E.g: URL: www.abc.com/tree/temp/circle/hello/....

I need to check if word "temp" is present in url attribute then that record should be dropped from getting indexed. I am using below code in Record Manipulator but seems some issue because of which it is not working

    <EXPRESSION LABEL="" NAME="REMOVE" TYPE="VOID" URL=""> 
    <EXPRESSION LABEL="" NAME="IF" TYPE="VOID" URL="">      
    <EXPRESSION LABEL="" NAME="MATH" TYPE="INTEGER" URL="">
    <EXPRNODE NAME="TYPE" VALUE="STRING"/>
    <EXPRNODE NAME="OPERATOR" VALUE="CMP_SUBSTR"/>
    <EXPRESSION LABEL="" NAME="IDENTITY" TYPE="PROPERTY" URL="">
    <EXPRNODE NAME="PROP_NAME" VALUE="URL"/>   
     </EXPRESSION>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
    <EXPRNODE NAME="VALUE" VALUE="temp"/>
    </EXPRESSION>
    </EXPRESSION>
    <EXPRESSION LABEL="" NAME="REMOVE_RECORD" TYPE="VOID" URL=""/> 
    </EXPRESSION>
    </EXPRESSION>
    </EXPRESSION>

Запись все еще отображается в файле index. Помогите мне понять, где я ошибаюсь. Почему это не работает?


person user3526677    schedule 06.11.2020    source источник


Ответы (1)


Если вы решите написать манипулятор CAS на основе Java, вы можете сделать это довольно легко. Доступны примеры, если вы установите их на этапе установки CAS.

В примере записи выводятся через mOutputChannel.output(record).

Вы можете легко установить логическое значение в случае удаления, а затем эти записи будут переданы на этапе вывода манипулятора.

if (output_record)
{
    mOutputChannel.output(record);
}
person SJRL    schedule 09.03.2021