MarkLogic - 如何切换建议的语言
MarkLogic - How to switch Language of Suggest
我想结合 Java 客户端 API 使用 MarkLogic 数据库的建议功能。
这样做的问题是,要进行建议调用,我需要一个字段或用作建议源的东西。下一步是创建引用此建议源的查询选项。最后一步是调用:
SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition();
def.setLimit(10);
def.setOptionsName("my-query-options");
def.setStringCriteria("Test");
//setup lang?
问题是:如何切换语言?
如果我的前端可以在德语和英语之间切换,那么我必须切换 search/suggest 语言。为此,我必须切换排序规则,但如何切换?
上传后查询选项是静态的,包含如下内容:
<default-suggestion-source>
<word collation="http://marklogic.com/collation/de">
<field name="my-suggest" />
</word>
</default-suggestion-source>
在此先感谢您的帮助!
此致,
Zipunrar
也许您正在寻找 java API 文档中定义的动态查询选项的用法:
https://docs.marklogic.com/guide/java/searches#id_76144
此外,您还可以注册多个查询选项文件,每种语言使用一个。
解决方案来自两个可能的(和实用的)想法:
要么按照建议为每种语言创建一个以上的查询选项文件(并为每种语言创建额外的索引),要么忽略该问题!
如果建议背后的字段(来源)指向标有不同 xml:lang 属性的元素,那么使用 say "books" 的建议调用将 return 只有英文建议与德语 "Bücher" 通话将 return 仅提供德语建议。
唯一的例外是英文标记元素中包含德文文本。这可能会导致误报。
其他想法:通过 "books" 等建议进行搜索并将搜索语言设置为德语将 return 没有任何结果。
结论:在特定语言下搜索是一个复杂的话题。这实际上取决于用户想要搜索的方式以及应用程序的工作方式。
P.S: 我使用了第二种解决方案,暂时忽略了这个问题。
我想结合 Java 客户端 API 使用 MarkLogic 数据库的建议功能。
这样做的问题是,要进行建议调用,我需要一个字段或用作建议源的东西。下一步是创建引用此建议源的查询选项。最后一步是调用:
SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition();
def.setLimit(10);
def.setOptionsName("my-query-options");
def.setStringCriteria("Test");
//setup lang?
问题是:如何切换语言? 如果我的前端可以在德语和英语之间切换,那么我必须切换 search/suggest 语言。为此,我必须切换排序规则,但如何切换?
上传后查询选项是静态的,包含如下内容:
<default-suggestion-source>
<word collation="http://marklogic.com/collation/de">
<field name="my-suggest" />
</word>
</default-suggestion-source>
在此先感谢您的帮助!
此致,
Zipunrar
也许您正在寻找 java API 文档中定义的动态查询选项的用法:
https://docs.marklogic.com/guide/java/searches#id_76144
此外,您还可以注册多个查询选项文件,每种语言使用一个。
解决方案来自两个可能的(和实用的)想法:
要么按照建议为每种语言创建一个以上的查询选项文件(并为每种语言创建额外的索引),要么忽略该问题!
如果建议背后的字段(来源)指向标有不同 xml:lang 属性的元素,那么使用 say "books" 的建议调用将 return 只有英文建议与德语 "Bücher" 通话将 return 仅提供德语建议。
唯一的例外是英文标记元素中包含德文文本。这可能会导致误报。
其他想法:通过 "books" 等建议进行搜索并将搜索语言设置为德语将 return 没有任何结果。
结论:在特定语言下搜索是一个复杂的话题。这实际上取决于用户想要搜索的方式以及应用程序的工作方式。
P.S: 我使用了第二种解决方案,暂时忽略了这个问题。