设置MarkLogic/建议选项(REST API)
我是MarkLogic新手,在使用MarkLogicRESTAPI的/suggest端点时遇到了一些问题 我试图根据测试数据库中所有文档的“name”属性生成建议 文档如下所示: 应用程序原型(3个文档)|/gs/cobra.json设置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." } 调用时,总是返回一个空集,我怀疑这是
{
"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,我已经更新了这些(新的配置可以看作是对原始帖子的编辑),但仍然没有运气。重叠的名称空间会有什么问题吗?啊!似乎我误解了名称空间在这里的使用-删除它是有效的。谢谢