2013-10-17 16 views
1

제안 제안이 두 가지 제안으로 이미 있습니다. 이 시점에서 Suggest 객체의 제안을 가져 오는 과정에서 도움이되는 설명서 또는 샘플 코드를 찾을 수 없습니다. 다음은Elasticsearch Java API의 제안 작업

내가이 객체 위의 코드는 스칼라에

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()) 

에게 제안 가져 오는거야 방법이다. Java를 이해하면 꽤 설명이됩니다. Java에서 솔루션을 알고 있다면 쉽게 스칼라 코드로 변환 할 수 있으므로 스칼라를 모른다면 이해할 필요가 없습니다.

도움을 주시면 감사하겠습니다. 당신에게

+0

? 내가 생각하는 0 가지 제안을 받았습니까? REST를 사용하여 동일한 작업을 시도 했습니까? – javanna

+0

아니요, 제가 말했듯이, suggest 객체에는 두 개의 엔티티가 있습니다. 질문은, 어떻게 제안을 추출합니까? – Commander

+0

'Suggest' 객체는'Iterable'입니다 ... 여기서 내가 무엇을 놓치고 있는지 확실하지 않습니다 ... – javanna

답변

1

오히려 추한 방법을 감사하지만 작동합니다

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