Java MarkLogic-如何切换建议的语言

Java MarkLogic-如何切换建议的语言,java,marklogic,autosuggest,marklogic-8,Java,Marklogic,Autosuggest,Marklogic 8,我想将MarkLogic数据库的建议功能与Java客户端API结合使用 问题是,要进行建议调用,我需要一个字段或用作建议源的内容。下一步是创建引用此建议源的查询选项。最后一步是调用: SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition(); def.setLimit(10); def.setOptionsName("my-query-options"); def.setStrin

我想将MarkLogic数据库的建议功能与Java客户端API结合使用

问题是,要进行建议调用,我需要一个字段或用作建议源的内容。下一步是创建引用此建议源的查询选项。最后一步是调用:

SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition();
def.setLimit(10);
def.setOptionsName("my-query-options");
def.setStringCriteria("Test");
//setup lang?
问题是:如何转换语言? 如果我的前端可以在德语和英语之间切换,那么我必须切换搜索/建议语言。为了做到这一点,我必须切换排序规则,但如何切换

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

<default-suggestion-source>
    <word collation="http://marklogic.com/collation/de">
        <field name="my-suggest" />
    </word>
</default-suggestion-source>

感谢您的帮助

致以最良好的祝愿


Zipunrar

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


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

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


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

解决方案有两种可能的(实用的)想法:

或者按照建议为每种语言创建多个查询选项文件(以及每种语言的附加索引),或者忽略该问题

如果建议后面的字段(源)指向使用不同xml:lang属性标记的元素,那么使用say“books”的建议调用将只返回英语建议,使用德语“Bücher”的调用将只返回德语建议

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

另外一个想法是:在诸如“书籍”之类的建议中搜索并将搜索语言设置为德语将不会返回任何结果

结论:在特定语言下搜索是一个复杂的话题。这实际上取决于用户希望如何搜索以及应用程序如何工作


附言:我用第二种解决方案暂时忽略了这个问题。

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

或者按照建议为每种语言创建多个查询选项文件(以及每种语言的附加索引),或者忽略该问题

如果建议后面的字段(源)指向使用不同xml:lang属性标记的元素,那么使用say“books”的建议调用将只返回英语建议,使用德语“Bücher”的调用将只返回德语建议

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

另外一个想法是:在诸如“书籍”之类的建议中搜索并将搜索语言设置为德语将不会返回任何结果

结论:在特定语言下搜索是一个复杂的话题。这实际上取决于用户希望如何搜索以及应用程序如何工作

附言:我用第二种解决方案暂时忽略了这个问题