如何通过/ manage / alert / actions / rules使用OR查询创建警报规则

时间:2019-01-02 08:06:50

标签: json marklogic marklogic-9

我正在尝试创建一个警报规则,以在将包含2个具有特定值的元素的文档插入数据库时​​触发。我可以使用qconsole中的alert api来执行此操作,但是由于某些原因,当尝试通过/ manage / alert / rules api发布规则时,此操作不起作用。

{
    "name": "email-notification-rule",
    "description": "Send email notification",
    "user-name": "admin",
    "query": {
        "orQuery": {
            "queries": [
                {
                    "elementValueQuery": {
                        "element": "LogType",
                        "text": "ERROR"
                    }
                },
                {
                    "elementValueQuery": {
                        "element": "Notification",
                        "text": "TRUE"
                    }
                }
            ]
        }
    },
    "action-name": "send-email-notification",
    "option": []
}

预期输出为:

<?xml  version="1.0" encoding="UTF-8"?>
<alert:rule id="8448603273660731662"     xmlns:alert="http://marklogic.com/xdmp/alert">
    <alert:name>email-notification-rule</alert:name>
    <alert:description>Send email notification</alert:description>
    <alert:user-id>7071164303237443533</alert:user-id>
    <alert:query>
        <cts:or-query xmlns:cts="http://marklogic.com/cts">
            <cts:element-value-query>
                <cts:element>Notification</cts:element>
                <cts:text xml:lang="en">TRUE</cts:text>
            </cts:element-value-query>
            <cts:element-value-query>
                <cts:element>LogType</cts:element>
                <cts:text xml:lang="en">ERROR</cts:text>
            </cts:element-value-query>
        </cts:or-query>
    </alert:query>
    <alert:action-name>send-email-notification</alert:action-name>
    <alert:external-security-id>0</alert:external-security-id>
    <alert:user-name>
    </alert:user-name>
    <alert:options>
    </alert:options>
</alert:rule>

但实际创建的规则文档为:

<alert:rule id="8448603273660731662"     xmlns:alert="http://marklogic.com/xdmp/alert">
    <alert:name>email-notification-rule</alert:name>
    <alert:description>Send email notification</alert:description>
    <alert:user-id>7071164303237443533</alert:user-id>
    <alert:query>
        <cts:or-query xmlns:cts="http://marklogic.com/cts">
            <cts:element-value-query>
                <cts:element>Notification</cts:element>
                <cts:text xml:lang="en">TRUE</cts:text>
            </cts:element-value-query>
        </cts:or-query>
    </alert:query>
    <alert:action-name>send-email-notification</alert:action-name>
    <alert:external-security-id>0</alert:external-security-id>
    <alert:user-name>
    </alert:user-name>
    <alert:options>
    </alert:options>
</alert:rule>

由于某些原因,MarkLogic仅将orQuery中的最后一个查询插入数据库。

对我来说,这似乎是一个错误,但也许我在写json正文时错了。

0 个答案:

没有答案