MarkLogic的新手,我在使用MarkLogic REST API的/ suggest端点时遇到了一些麻烦。
我正在尝试根据'名称'生成建议。来自我的测试数据库中所有文档的属性。
文件如下: app-prototype(3份文件)| /gs/cobra.json
{
"name": "cobra",
"kind": "mammal",
"desc": "The cobra is a venomous, hooded snake of the family Elapidae."
}
调用 destructured object ,总是返回一个空集,我怀疑这是我的搜索选项/配置的问题。
响应:
{
"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>
和以下属性范围索引配置: http://host:port/v1/suggest?partial-q=c
不确定我是否误解了命名空间/范围索引的使用。
有人能说清楚这里可能出现的问题吗?
编辑:用元素范围索引替换索引,如下所示: Attribute Range Index
并将default-suggestion-source更新为:
<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>
仍然没有结果返回。
答案 0 :(得分:2)
您的(JSON)文档不包含$(elementId).onchange(function(){
var len = this.val.length;
if (len > 5)
alert("You cannot exceed max of 6 characters").
});
个属性,但包含name
个属性。这些由元素范围索引捕获。或者,您也可以在name
上使用路径范围索引。替换索引,并相应地调整default-suggestion-source。
确保元素范围索引使用空命名空间uri。 JSON属性永远不在命名空间中(与无命名空间中的元素行为相匹配)。
同时确保从建议源中删除name
,否则它仍会查找属性范围索引。
HTH!