gpt4 book ai didi

带约束的 MarkLogic 搜索返回错误结果

转载 作者:行者123 更新时间:2023-12-01 13:20:19 24 4
gpt4 key购买 nike

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)

当我使用 city : Atlanta 在 qconsole 上执行上述查询时,我得到了正确的匹配文档详细信息(即 2 个匹配项)但是当我使用 city NE Atlanta 时上面的查询我得到了错误的结果...这意味着获取所有可用的 ML 文档。

我的要求是当我经过 city NE Atlanta 时它应该显示零匹配而不是显示来自 ML 的所有文档。

另外,我不想为city 创建范围索引,因为这个字段可能会在运行时发生变化。

如果我错了请指正。

最佳答案

在文档搜索中,比较仅适用于范围查询。

Search API 忽略无效查询,产生一个空查询,它匹配数据库中的所有文档。

然而,通过在约束前加上减号(如“-city:Atlanta”),否定查询可用于值查询,产生:

<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>

该查询是否检索到您期望的文档?

希望对你有帮助,

关于带约束的 MarkLogic 搜索返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50266135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com