Marklogic 如何获取搜索:来自多个范围元素源的建议作为默认建议源选项
我的MarkLogic数据库中的xml示例如下Marklogic 如何获取搜索:来自多个范围元素源的建议作为默认建议源选项,marklogic,marklogic-8,Marklogic,Marklogic 8,我的MarkLogic数据库中的xml示例如下 <metadata> <title>first title</title> <author>gorge k</author> <location>London</location> </metadata> 现在我想在上面的默认建议源选项中添加作者和位置 我尝试使用此配置添加作者: <default-sugges
<metadata>
<title>first title</title>
<author>gorge k</author>
<location>London</location>
</metadata>
现在我想在上面的默认建议源选项中添加作者
和位置
我尝试使用此配置添加作者
:
<default-suggestion-source>
<range collation="http://marklogic.com/collation/"
type="xs:string">
<element ns="" name="title"/>
</range>
<range collation="http://marklogic.com/collation/"
type="xs:string">
<element ns="" name="author"/>
</range>
</default-suggestion-source>
但我的错误如下:
[1.0-ml]XDMP-ARGTYPE:(err:XPTY0004)fn:string((属性{fn:QName(“,“collation”)}{”“},属性{fn:QName(“,“collation”)}{>)--arg1不是item()类型
任何人请建议如何实现这一点?您可以设置一个建议源。可以将约束设置为约束。设置一个字段范围索引和如下所示的搜索选项,我认为应该可以
<search:options xmlns="http://marklogic.com/appservices/search">
<constraint name="suggestions">
<range type="xs:string" collation="http://marklogic.com/collation/">
<field name="suggest-field"/>
</range>
</constraint>
<default-suggestion-source ref="suggestions" />
</search:options>
除了Dave Cassel的解决方案,我建议不要将
默认建议源
引用到约束。而是将约束包含在默认建议源
节点中
<search:options xmlns="http://marklogic.com/appservices/search">
<default-suggestion-source>
<range type="xs:string" collation="http://marklogic.com/collation/">
<field name="suggest-field"/>
</range>
</default-suggestion-source>
</search:options>
为什么??MarkLogic不仅会建议在源中找到的值(本例中为范围索引),还会建议约束名称。因此,您将有一个建议建议:
。默认源可能不需要这样做
如需进一步阅读,请参阅此。感谢Dave提出上述建议。我设置了字段和范围字段索引,现在可以使用了。
<search:options xmlns="http://marklogic.com/appservices/search">
<default-suggestion-source>
<range type="xs:string" collation="http://marklogic.com/collation/">
<field name="suggest-field"/>
</range>
</default-suggestion-source>
</search:options>