Marklogic 没有关于单词限制的建议

Marklogic 没有关于单词限制的建议,marklogic,Marklogic,在我的search:suggestcall中,我在元素上指定一个单词前缀约束。出于某种原因,我没有得到前缀约束搜索的建议: 此代码说明了我的问题: let $doc := <doc> <title>Show me some suggestions!</title> </doc> return xdmp:document-insert('so.xml', $doc); import module namespace search = "ht

在我的
search:suggest
call中,我在元素上指定一个单词前缀约束。出于某种原因,我没有得到前缀约束搜索的建议:

此代码说明了我的问题:

let $doc := 
<doc>
  <title>Show me some suggestions!</title>
</doc>

return xdmp:document-insert('so.xml', $doc);

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

search:suggest('title:', 
  <options xmlns="http://marklogic.com/appservices/search">
    <constraint name="title">
      <word collation="http://marklogic.com/collation/en">
        <element name="title" />
      </word>
    </constraint>

    <default-suggestion-source>
      <word-lexicon collation="http://marklogic.com/collation/en"/>
    </default-suggestion-source>
  </options>
)
这似乎与
范围
集合
约束不同,建议是开箱即用的,没有
建议源

对于
word
约束,例如性能,是否有理由不显示建议?这种行为在什么地方有记录吗


使用MarkLogic 9.0-8。

如果您已经为特定的JSON属性或元素创建了单词词典,那么选项应该能够通过以下方式引用约束:

<default-suggestion-source ref="title"/>
<default-suggestion-source>
  <word collation="http://marklogic.com/collation/en">
    <element name="title" />
  </word>
</default-suggestion-source>

或者通过以下方式识别单词词典:

<default-suggestion-source ref="title"/>
<default-suggestion-source>
  <word collation="http://marklogic.com/collation/en">
    <element name="title" />
  </word>
</default-suggestion-source>

单词词典查询选项指定数据库范围的单词词典。如果为数据库启用了数据库范围的单词词典,那么单词词典元素应该可以工作——尽管不建议这样做(除非数据库非常小)

有关详细信息,请参阅:


希望这能有所帮助,

谢谢您的回答。但这并不是我想要的。问题不在于
默认建议源
。这更像是在
默认建议源
旁边有一个额外的约束“title”。仅当我为约束添加
建议源时,才会显示对约束值的建议。此外,请检查字符串查询“title:”。我希望这会产生一个包含“title:Show”、“title:me”的建议列表。谢谢你的澄清。其目的是使相同的查询选项可用于查询、值和建议。范围约束标识范围索引,该索引可用于范围查询、面和建议,而无需任何其他信息。相反,单词约束可以用于单词查询,而不需要单词词典的支持。搜索API没有假设所有单词约束都由单词词典支持,而不是在搜索过程中为单词查询声明,而是采取谨慎的方法,要求声明单词词典。好的,这似乎是一种合理的方法。谢谢你的解释!