我们可以在范围约束中为计算桶使用用户定义的锚点吗?
Can we use user defined anchor for computed-bucket in range constraints?
我有一些这样的文档内容,并且我在元素 "key" 上有一个范围索引。
<root>
<key>NAM</key>
<key>NA</key>
<key>North America</key>
</root>
生成构面时,我想将 "NAM" 和 "NA" 计算为一组而不是每个。
所以我尝试使用计算桶,或多或少像这个例子:
<constraint name="date">
<range type="xs:dateTime" facet="true">
<element ns="http://example.com" name="entry"/>
<attribute ns="" name="date"/>
<computed-bucket lt="-P1Y" anchor="start-of-year" name="older">Older</computed-bucket>
<computed-bucket lt="P1Y" ge="P0Y" anchor="start-of-year" name="year">This Year</computed-bucket>
<computed-bucket lt="P1M" ge="P0M" anchor="start-of-month" name="month">This Month</computed-bucket>
<computed-bucket lt="P1D" ge="P0D" anchor="start-of-day" name="today">Today</computed-bucket>
<computed-bucket ge="P0D" anchor="now" name="future">Future</computed-bucket>
<facet-option>descending</facet-option>
</range>
</constraint>
但是我注意到锚点通常是由MarkLogic预先定义的,所以我想问:我可以使用自己定义的anchor,就像下面的函数吗?
<computed-bucket ge="P0D" anchor="myAnchor.xqy" name="future">Future</computed-bucket>
对于您定义的范围,您可以使用 bucket 而不是 computed-bucket:
http://docs.marklogic.com/guide/search-dev/appendixa#id_80046
类似于:
<bucket name="N" lt="O" ge="N">Terms that start with N</bucket>
希望对您有所帮助,
计算桶不是字符串值的选项。如果桶太僵硬,请考虑编写自定义方面。这是一个允许对值模式进行分组的示例:
https://github.com/grtjn/ml-constraints/blob/master/grouping-constraint.xqy
HTH!
我有一些这样的文档内容,并且我在元素 "key" 上有一个范围索引。
<root>
<key>NAM</key>
<key>NA</key>
<key>North America</key>
</root>
生成构面时,我想将 "NAM" 和 "NA" 计算为一组而不是每个。
所以我尝试使用计算桶,或多或少像这个例子:
<constraint name="date">
<range type="xs:dateTime" facet="true">
<element ns="http://example.com" name="entry"/>
<attribute ns="" name="date"/>
<computed-bucket lt="-P1Y" anchor="start-of-year" name="older">Older</computed-bucket>
<computed-bucket lt="P1Y" ge="P0Y" anchor="start-of-year" name="year">This Year</computed-bucket>
<computed-bucket lt="P1M" ge="P0M" anchor="start-of-month" name="month">This Month</computed-bucket>
<computed-bucket lt="P1D" ge="P0D" anchor="start-of-day" name="today">Today</computed-bucket>
<computed-bucket ge="P0D" anchor="now" name="future">Future</computed-bucket>
<facet-option>descending</facet-option>
</range>
</constraint>
但是我注意到锚点通常是由MarkLogic预先定义的,所以我想问:我可以使用自己定义的anchor,就像下面的函数吗?
<computed-bucket ge="P0D" anchor="myAnchor.xqy" name="future">Future</computed-bucket>
对于您定义的范围,您可以使用 bucket 而不是 computed-bucket:
http://docs.marklogic.com/guide/search-dev/appendixa#id_80046
类似于:
<bucket name="N" lt="O" ge="N">Terms that start with N</bucket>
希望对您有所帮助,
计算桶不是字符串值的选项。如果桶太僵硬,请考虑编写自定义方面。这是一个允许对值模式进行分组的示例:
https://github.com/grtjn/ml-constraints/blob/master/grouping-constraint.xqy
HTH!