1

我已经有一个 Suggest 对象,里面有两个建议。在这一点上,我找不到任何文档或示例代码来帮助指导我从 Suggest 对象中获取建议。

下面是我如何获取建议对象

val generator:DirectCandidateGenerator = candidateGenerator("name")
            .prefixLength(0)
            .minWordLength(0)
            .suggestMode("always")
            .maxEdits(2);
val phraseSuggest:PhraseSuggestionBuilder = phraseSuggestion("did_you_mean")
        .field("name")
    .addCandidateGenerator(generator)
    .text(t)
    .gramSize(3);

val search = Global.getClient().prepareSearch("businesses")
  .setSearchType(SearchType.QUERY_THEN_FETCH)
  .setQuery(customQuery)
  .setFrom(0).setSize(max)
  .addSuggestion(phraseSuggest)
  .execute()
  .actionGet();


val suggest = search.getSuggest()
println("Suggest Size: " + suggest.size())

上面的代码是在 Scala 中的。如果您了解 Java,这是非常自我解释的。如果您知道 Java 中的解决方案,那么我可以轻松地将其转换为 Scala 代码,因此如果您不知道,则无需尝试找出 Scala。

任何帮助将不胜感激。谢谢你

4

1 回答 1

1

一种相当丑陋但有效的方法:

val options = suggest.iterator().next().iterator().next().getOptions()
options.asScala.map(x => x.getText.string).toList
于 2014-07-30T08:54:27.040 回答