wildcard - 通配符搜索不适用于路径索引
问题描述
这是给出所需结果的查询:
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
search:search("( ( collectionId: ( "54930050DETB6CP71D38" ) ) ) sort:documentCreationDateDES",
<options xmlns="http://marklogic.com/appservices/search">
<term>
<empty apply="all-results"/>
<term-option>unstemmed</term-option>
<term-option>case-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>wildcarded</term-option>
</term>
<additional-query>{cts:directory-query('/dir/subdir01/', "1")}</additional-query>
<transform-results apply="transformed-result" ns="http://searchgui/search" at="/customResultSet.xqy"/>
(:
Constraints or Search Criteria.
- collectionId
- creationDate
:)
<search:constraint name="collectionId">
<search:range type="xs:string" facet="false" collation="http://marklogic.com/collation/en">
<search:path-index ns="http://any.anyns.com/2013/doc">
//cd:documentCollections/cd:collection/cd:id
</search:path-index>
</search:range>
</search:constraint>
<search:constraint name="creationDateRange">
<search:range type="xs:dateTime" facet="false">
<search:bucket ge="0" lt="0" name="documentCreationDate">
Search by Document Creation date / uploaded date
</search:bucket>
<search:element ns="http://any.anyns.com/2013/doc" name="documentCreationDate"/>
<facet-option>limit=10</facet-option>
<facet-option>item-order</facet-option>
<facet-option>descending</facet-option>
</search:range>
</search:constraint>
(:
Sorting options:
- collectionId
- creationDate
:)
<search:operator name="sort">
(: Document Collection Id :)
<search:state name="collectionIdASC">
<search:sort-order direction="ascending" type="xs:string">
<search:path-index ns="http://any.anyns.com/2013/doc">
//cd:documentCollections/cd:collection/cd:id
</search:path-index>
</search:sort-order>
</search:state>
<search:state name="collectionIdDES">
<search:sort-order direction="descending" type="xs:string">
<search:path-index ns="http://any.anyns.com/2013/doc">
//cd:documentCollections/cd:collection/cd:id
</search:path-index>
</search:sort-order>
</search:state>
(: Creation Date :)
<search:state name="documentCreationDateASC">
<search:sort-order direction="ascending" type="xs:dateTime">
<search:element ns="http://any.anyns.com/2013/doc" name="documentCreationDate"/>
</search:sort-order>
</search:state>
<search:state name="documentCreationDateDES">
<search:sort-order direction="descending" type="xs:dateTime">
<search:element ns="http://any.anyns.com/2013/doc" name="documentCreationDate"/>
</search:sort-order>
</search:state>
</search:operator>
</options>, 1, 100);
但是当我用如下通配符替换搜索条件时,它不会返回任何结果:
"( ( collectionId: ( "* *54930050DETB6CP71D38* *" ) ) ) sort:documentCreationDateDES"
虽然我将它设置<term-option>
为wildcarded
仍然不起作用,但任何关于我可能缺少的建议或指针都会有所帮助。
我尝试过以不同的组合来回改变其他的term-option
,但它不起作用,也不起作用或起作用。sensitive
insensitive
stemmed
unstemmed
解决方案
Term-options 不适用于范围约束,只有 facet-options 可以。并且一个方面选项wildcarded
不存在。范围约束非常适合选择范围,例如num GT x AND num LT y
,但不适合中间字符串匹配。
我认为您必须为同一路径创建一个单词或值约束才能在其上使用通配符。不幸的是,您不能像您在 collectionId 约束中那样在特定路径上创建单词或值约束。您必须使用该路径创建一个字段。
!
推荐阅读
- javascript - 如何将 Pixlee Social Feed 添加到 React 应用程序?
- r - 使用 dplyr 计算 R 中的分组序列
- ruby-on-rails - 是否可以为 Algolia 记录动态创建属性?
- html - 网站中的 XHTML-Doctype 仍然可以使用吗?
- sql - Datediff SQL 日期转换
- python - 使用 Pandas 计算分组时的案例
- node.js - 在 Linux 服务器上运行 .exe 文件
- r - 选中一些复选框后,进行一些测试并显示输出:R shiny
- spring - 为什么 Spring 在返回 CompletableFuture 时会提出 DeferredResult 达到相同的结果
- php - Zend Framework 1.12 - 如何在 pdf 中渲染 Zend_form