2011-04-23 4 views
1

나는 자바 클라이언트 IndexTank 사용하고 있습니다,하지만 난 결과에 액세스 할 수없는 것 :IndexTank로 결과를 얻는 방법?

SearchResults results = index.search(Query.forString(keywords)); 

    for (Map<String, Object> document : results.results) { 
     System.out.println("doc id: " + document.get("docid")); 

마지막 줄은 실패 : 유형 불일치 : 문자열

합니까에 Object에서 변환 할 수 있습니다 아무도 왜이 오류가 발생하는지 알 수 있습니까? 감사.

+0

보십시오 String.valueOf (document.get ("docid"))'. 그러나 그것은 단지 'String + Object'가 자동으로'String.valueOf (Object)'를 호출해야하기 때문에 추측에 불과합니다. 어쨌든 예외를 게시하고 스택 추적을 게시 할 수 있습니까? –

답변

1

외형은 괜찮습니다. 올바른 수업을 모두 가져 오시겠습니까? 이 작품은 나를 위해 :

import java.util.HashMap; 
import java.util.Map; 

import com.flaptor.indextank.apiclient.Index; 
import com.flaptor.indextank.apiclient.IndexTankClient; 
import com.flaptor.indextank.apiclient.IndexTankClient.Query; 
import com.flaptor.indextank.apiclient.IndexTankClient.SearchResults; 

public class IndexTankExample { 
    public static void main(String[] args) throws Exception { 
     IndexTankClient client = new IndexTankClient("<PRIVATE URL>"); 
     Index index = client.getIndex("test"); 

     Map<String, String> fields = new HashMap<String, String>(); 
     fields.put("text", "foo bar baz"); 
     index.addDocument("1", fields); 

     SearchResults results = index.search(Query.forString("bar")); 
     for (Map<String, Object> document : results.results) { 
      System.out.println("doc id: " + document.get("docid")); 
     } 
    } 
} 
+0

String으로 캐스팅해야했지만 이제는 효과가 있습니다. – Jason

관련 문제