设置MarkLogic/建议选项(REST API)

设置MarkLogic/建议选项(REST API),marklogic,marklogic-9,Marklogic,Marklogic 9,我是MarkLogic新手,在使用MarkLogicRESTAPI的/suggest端点时遇到了一些问题 我试图根据测试数据库中所有文档的“name”属性生成建议 文档如下所示: 应用程序原型(3个文档)|/gs/cobra.json { "name": "cobra", "kind": "mammal", "desc": "The cobra is a venomous, hooded snake of the family Elapidae." } 调用时,总是返回一个空集,我怀疑这是

我是MarkLogic新手,在使用MarkLogicRESTAPI的/suggest端点时遇到了一些问题

我试图根据测试数据库中所有文档的“name”属性生成建议

文档如下所示: 应用程序原型(3个文档)|/gs/cobra.json

{
"name": "cobra", 
"kind": "mammal", 
"desc": "The cobra is a venomous, hooded snake of the family Elapidae."
}
调用时,总是返回一个空集,我怀疑这是我的搜索选项/配置的问题

答复:

{
    "suggestions": []
}
使用以下suggest-options.xml:

<options xmlns="http://marklogic.com/appservices/search">
    <default-suggestion-source>
    <range type="xs:string">
        <element ns="" name="name"/>
        <attribute ns="" name="name"/>
    </range>
    </default-suggestion-source>
</options>

不确定我是否误解了此处名称空间/范围索引的使用

有人能解释一下这里到底出了什么问题吗

编辑:将索引替换为元素范围索引,如下所示:

并将默认建议源更新为:

<options xmlns="http://marklogic.com/appservices/search">
    <default-suggestion-source>
        <range type="xs:string">
            <element ns="http://marklogic.com/xdmp/dls" name="name"/>
            <attribute ns="http://marklogic.com/xdmp/dls" name="name"/>
        </range>
    </default-suggestion-source>
</options>

仍然没有返回结果。

您的(JSON)文档不包含
name
属性,而是
name
属性。这些由元素范围索引捕获。或者,您也可以在
name
上使用路径范围索引。替换索引,并相应地调整默认建议源

确保元素范围索引使用空的命名空间uri。JSON属性从不在名称空间中(这与没有名称空间的元素的行为相匹配)

还要确保从建议源中删除
,否则它仍将查找属性范围索引

您的(JSON)文档不包含
name
属性,而是
name
属性。这些由元素范围索引捕获。或者,您也可以在
name
上使用路径范围索引。替换索引,并相应地调整默认建议源

确保元素范围索引使用空的命名空间uri。JSON属性从不在名称空间中(这与没有名称空间的元素的行为相匹配)

还要确保从建议源中删除
,否则它仍将查找属性范围索引


谢谢@grtjn,我已经更新了这些(新的配置可以被看作是对原始帖子的编辑),但仍然没有运气。重叠的名称空间会有什么问题吗?啊!似乎我误解了名称空间在这里的使用-删除它是有效的。ThanksThanks@grtjn,我已经更新了这些(新的配置可以看作是对原始帖子的编辑),但仍然没有运气。重叠的名称空间会有什么问题吗?啊!似乎我误解了名称空间在这里的使用-删除它是有效的。谢谢