约束返回错误结果的MarkLogic搜索 xquery版本“1.0-ml”; 导入模块命名空间 搜索=”http://marklogic.com/appservices/search" 位于“/MarkLogic/appservices/search/search.xqy”; let$options:= 返回搜索:搜索(“城市:亚特兰大”,$options)
当我使用约束返回错误结果的MarkLogic搜索 xquery版本“1.0-ml”; 导入模块命名空间 搜索=”http://marklogic.com/appservices/search" 位于“/MarkLogic/appservices/search/search.xqy”; let$options:= 返回搜索:搜索(“城市:亚特兰大”,$options),marklogic,marklogic-8,Marklogic,Marklogic 8,当我使用city:Atlanta在qconsole上执行上述查询时,我得到了正确的匹配文档详细信息(即2个匹配),但当我使用上述查询执行city NE Atlanta时,我得到了错误的结果…这意味着获得了ML中可用的所有文档 我的要求是当我通过亚特兰大市NE时,它应该显示零匹配,而不是显示来自ML的所有文档 另外,我不想为城市创建范围索引,因为该字段在运行时可能会更改 如果我错了,请纠正我 在文档搜索中,比较仅适用于范围查询 搜索API忽略无效查询,生成一个与数据库中所有文档匹配的空查询 但是,
city:Atlanta
在qconsole上执行上述查询时,我得到了正确的匹配文档详细信息(即2个匹配),但当我使用上述查询执行city NE Atlanta
时,我得到了错误的结果…这意味着获得了ML中可用的所有文档
我的要求是当我通过亚特兰大市NE时,它应该显示零匹配,而不是显示来自ML的所有文档
另外,我不想为城市创建范围索引,因为该字段在运行时可能会更改
如果我错了,请纠正我 在文档搜索中,比较仅适用于范围查询 搜索API忽略无效查询,生成一个与数据库中所有文档匹配的空查询 但是,通过在约束前面加上负号(如“-city:Atlanta”)可以在值查询中使用否定查询,得到:
xquery version "1.0-ml";
import module namespace
search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<constraint name="city">
<value>
<element name="city"/>
</value>
</constraint>
<sort-order type="xs:string" collation="http://marklogic.com/collation/"
direction="ascending">
<element ns="" name="userName"/>
</sort-order>
</options>
return search:search("city : Atlanta", $options)
城市
亚特兰大
该查询是否检索到您期望的文档
希望有帮助
<cts:not-query xmlns:cts="http://marklogic.com/cts">
<cts:element-value-query>
<cts:element>city</cts:element>
<cts:text xml:lang="en">Atlanta</cts:text>
</cts:element-value-query>
</cts:not-query>