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没有假设所有单词约束都由单词词典支持,而不是在搜索过程中为单词查询声明,而是采取谨慎的方法,要求声明单词词典。好的,这似乎是一种合理的方法。谢谢你的解释!