我正在尝试在字段索引上构建存储桶约束。当我运行fn:count(cts:field-values())时,将返回正确数量的值,但是当我尝试使用Search API执行受限搜索时,什么也没发生。
在以下路径上设置字段配置(可以是元素名称,应同等对待):
mods:mods / mods:originInfo / mods:dateCreated [@keyDate] mods:mods / mods:originInfo / mods:dateIssued [@keyDate]
标量类型为gYear。
let $options :=
<search:options>
<constraint name="date" xmlns="http://marklogic.com/appservices/search">
<range type="xs:gYear">
<field name="date"/>
<bucket name="any-1800" lt="1801">–1800</bucket>
<bucket name="1801-1825" ge="1801" lt="1826">1801–1825</bucket>
<bucket name="1826-1850" ge="1826" lt="1851">1826–1850</bucket>
<bucket name="1851-1875" ge="1851" lt="1876">1851–1875</bucket>
<bucket name="1876-1900" ge="1876" lt="1901">1876–1900</bucket>
<bucket name="1901-1925" ge="1901" lt="1926">1901–1925</bucket>
<bucket name="1926-1950" ge="1926" lt="1951">1926–1950</bucket>
<bucket name="1951-1975" ge="1951" lt="1976">1951–1975</bucket>
<bucket name="1976-2000" ge="1976" lt="2001">1976–2000</bucket>
<bucket name="2001-any" ge="2001">2001–</bucket>
</range>
</constraint>
</search:options>
return search:search('"holy spirit" date: 1910', $options)
我希望返回的搜索结果中包含确切的关键词短语“ holy spirit”,其日期为:1910。相反,我只是获取与关键词短语匹配的文档,而不考虑日期。
答案 0 :(得分:0)
删除冒号后的空格,否则将其视为一个单独的搜索词:
search:search('"holy spirit" AND date:1910', $options)
我还为更明确的事物添加了AND。
HTH!