Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Elasticsearch Java API中使用建议_Java_Scala_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Scala,elasticsearch" /> elasticsearch,Java,Scala,elasticsearch" />

在Elasticsearch Java API中使用建议

在Elasticsearch Java API中使用建议,java,scala,elasticsearch,Java,Scala,elasticsearch,我已经有了一个包含两个建议的建议对象。在这一点上,我找不到任何文档或示例代码来帮助我从Suggest对象获取建议 下面是我如何获取建议对象的 val generator:DirectCandidateGenerator = candidateGenerator("name") .prefixLength(0) .minWordLength(0) .suggestMode("always") .maxE

我已经有了一个包含两个建议的建议对象。在这一点上,我找不到任何文档或示例代码来帮助我从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,则无需尝试了解它


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

这是一种相当丑陋的方法,但效果很好:

val options = suggest.iterator().next().iterator().next().getOptions()
options.asScala.map(x => x.getText.string).toList

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

val options = suggest.iterator().next().iterator().next().getOptions()
options.asScala.map(x => x.getText.string).toList

发生了什么?我想你得到了0个建议吧?你试过使用REST做同样的事情吗?没有,就像我说的,建议对象中有两个实体。问题是,我如何提取建议?
Suggest
对象是
Iterable
…不确定我在这里遗漏了什么…试图忘记你写的东西,适度会有所帮助。让我们继续,两个实体你指的是iterable的两个级别?怎么了?我想你得到了0个建议吧?你试过使用REST做同样的事情吗?没有,就像我说的,建议对象中有两个实体。问题是,我如何提取建议?
Suggest
对象是
Iterable
…不确定我在这里遗漏了什么…试图忘记你写的东西,适度会有所帮助。让我们继续,你说的两个实体是指iterable的两个级别?