gpt4 book ai didi

java - ElasticSearch 5 向 SuggestionBuilders 添加上下文

转载 作者:行者123 更新时间:2023-11-29 07:30:55 24 4
gpt4 key购买 nike

我正在通过 java 处理 ES5,并尝试将上下文添加到 CompletionSuggestionBuilder。我有一个需要添加的 String 对象的映射。到目前为止我的代码是 -

Map<String, String> context = ...
CompletionSuggestionBuilder csb = SuggestBuilders.completionSuggestion(field).text(value).size(count);

如何将上下文对象添加到 csb?我认为使用的方法是 -

csb.contexts(Map<String, List<? extends ToXContent>> queryContexts)

但我不知道如何从我的 map 获取 map 以作为参数传递给上下文方法。

最佳答案

您可以创建 Map<String, List<? extends ToXContent>>像这样;

Collections.singletonMap("cat", Arrays.asList(CategoryQueryContext.builder().setCategory("cat0").setBoost(3).build(), CategoryQueryContext.builder().setCategory("cat1").build()))

我认为目前支持扩展 ToXContext 的类型是CategoryQueryContextGeoQueryContext

奇怪的是,如果我创建一个局部变量并将其传递给 contexts这是行不通的。所以,我只是将它直接传递给它确实有效的上下文。

完整的例子是这样的:

CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg").contexts(Collections.singletonMap("cat", Arrays.asList(CategoryQueryContext.builder().setCategory("cat0").setBoost(3).build(), CategoryQueryContext.builder().setCategory("cat1").build())));

都写在他们的测试用例里了。你可以看看它: https://github.com/elastic/elasticsearch/blob/master/core/src/test/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java#L290

希望对您有所帮助。

关于java - ElasticSearch 5 向 SuggestionBuilders 添加上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com