我正在尝试创建一个警报规则,以在将包含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正文时错了。