MarkLogic - 如何切换建议语言

时间:2016-08-09 08:04:03

标签: java marklogic autosuggest marklogic-8

我想将MarkLogic数据库的建议功能与Java Client API结合使用。

问题在于,做一个建议通话我需要一个字段或者作为建议来源的东西。下一步是创建引用此建议源的查询选项。最后一步是致电:

lblerrortoday

问题是:如何切换语言? 如果我的前端可以在德语和英语之间切换,那么我必须切换搜索/建议语言。为了做到这一点,我必须切换整理,但如何?

上传后查询选项是静态的,包含以下内容:

SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition();
def.setLimit(10);
def.setOptionsName("my-query-options");
def.setStringCriteria("Test");
//setup lang?

感谢先进的任何帮助!

致以最诚挚的问候,

Zipunrar

2 个答案:

答案 0 :(得分:1)

也许您正在寻找使用java API文档中定义的动态查询选项:

https://docs.marklogic.com/guide/java/searches#id_76144

此外,您还可以注册多个查询选项文件,并为每种语言使用一个。

答案 1 :(得分:1)

解决方案来自两个可能的(和实际的)想法:

根据建议为每种语言创建多个查询选项文件(以及每种语言的其他索引)或者忽略该问题!

如果建议背后的字段(来源)指向标有不同xml:lang属性的元素,那么使用说“books”的建议调用将仅返回英语建议并且使用德语“Bücher”进行调用将只返回德国人的建议。

唯一的例外是英语标记元素中是否有德语文本。这可能会导致误报。

额外的想法:搜索“书籍”之类的建议并将搜索语言设置为德语将不会返回任何内容。

结论:在特定语言下搜索是一个复杂的主题。这实际上取决于用户想要搜索的方式以及应用程序的工作方式。

P.S:我现在使用第二种解决方案忽略了这个问题。