MarkLogic“;搜索:建议;查找约束名称

MarkLogic“;搜索:建议;查找约束名称,marklogic,Marklogic,所以这个真的很奇怪。我有一个完全空的数据库,并使用以下代码: xquery version "1.0-ml"; import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy"; search:suggest("qwe" , <options xmlns="http://marklogic.com/

所以这个真的很奇怪。我有一个完全空的数据库,并使用以下代码:

xquery version "1.0-ml";

import module namespace search = "http://marklogic.com/appservices/search"
    at "/MarkLogic/appservices/search/search.xqy";

search:suggest("qwe" , 
  <options xmlns="http://marklogic.com/appservices/search">
    <constraint name="qweqwe">
      <word type="xs:string" collation="http://marklogic.com/collation/">
        <element name="test"/>
      </word>
    </constraint>
    <default-suggestion-source ref="qweqwe"/>
  </options>
)
xquery版本“1.0-ml”;
导入模块命名空间搜索=”http://marklogic.com/appservices/search"
位于“/MarkLogic/appservices/search/search.xqy”;
搜索:建议(“qwe”,
)
结果是一个建议:
qweqwe:

search:suggest
似乎找到了约束名称并提出建议

复制步骤:

  • 清除数据库
  • 使用排序规则为元素
    测试创建元素单词词典http://marklogic.com/collation/
  • 执行以前的代码

使用ML9.0-8和完全空且重新编制索引的
文档
数据库。您可以将约束的名称更改为任何您想要的名称,您总是可以得到它的建议。这是一个bug吗?

不是bug,它是设计出来的,和最常用于搜索栏中的提前输入建议。这是一种方便用户的东西。它可以帮助用户发现可用的约束,并将其返回,包括冒号,这样您可以在插入名称+冒号后继续查找该约束的值


好的,我明白了。但这对默认建议源有意义吗?为什么我要搜索引用它的约束?它总是为它知道的所有内容提供建议,所以默认建议、约束名称,以及适当的约束值(如果您碰巧使用了约束前缀)。。考虑删除约束,只需在代码<>默认建议源元素内放一个<代码>单词词典<代码> ..不知道这个特性,但我真的很喜欢这个想法。我就是这么做的。非常感谢。