比如说,我有 5 个文档属于不同的集合,例如:
Biography, Fiction, Humour, Adventure
例如,文档 1 在Adventure Collection 中:
<Book>
<title>Harry Potter and the Deathly Hallows</title>
<Author>J.K.Rowling</Author>
<year>2007</year>
</Book>
文件 2,在传记收藏中:
<Book>
<title>Steve Jobs</title>
<Author>Walter Issacson</Author>
<year>2011</year>
</Book>
现在我想在year
元素上应用建议。我想将此应用于集合,例如,建议在传记集合上year
使用应用程序加载器定义元素范围索引并摄取示例文档,并为文档设置中的文档配置集合。
以下是我的 XQUERY 代码:
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="Group">
<collection prefix="Biography/"/>
</constraint>
<suggestion-source ref="Group">
<range collation="http://marklogic.com/collation/"
type="xs:string" >
<element name="year"/>
</range>
</suggestion-source>
</options>
return
search:suggest("Group:20", $options)
在运行此查询时,我得到了2011 年和2007 年的建议,这不是我所期望的。预期的建议是2011 年(因为Biography
应该只搜索集合)。我在 search:suggest 上引用了这个文档,但我无法找出究竟是什么错误。我在哪里做错了?