kyuuuuuuuuuuriのブログ

うぇぶエンジニアになりたくてなりたくて震えるもろきゅうの日記です

Solrでハイライト取得しようとしてもnullになる

Solrエンジンを使って、検索システムを作ろうとしています。
参考書見ても、調べても、ハイライトのスニペットがどうしても取得できない
ソースコードは以下の通り

    //solrに投げるクエリーの設定
        SolrQuery query = new SolrQuery();
        String searchword = "検索用の用語";
    	query.setQuery("+content:" + searchword);
    	query.addFilterQuery("+is_title:" + 0);
    	query.setRows(1000);

    	//ハイライト
    	query.setHighlight(true);
    	query.setHighlightFragsize(100);
    	query.setHighlightSnippets(1);

    //Solrへ投げるクエリ―
    	QueryResponse response = server.query(query);

    //responseを受け取る    
    	List<maniDto> resultmaniList = response.getBeans(maniDto.class);
    	SolrDocumentList list =response.getResults();

    //ハイライト出力
    	for(SolrDocument sd : list){
    		String id = (String) sd.getFieldValue("id");
    		if(response.getHighlighting().get(id)!=null){
    			System.out.println(response.getHighlighting().get(id).get("content"));
    		}
    	}

    	highLight.get("content");

これ、contentフィールドを取得してるんだけど、nullになるんですよねー
で、調べ回った結果

query.setParam("hl.fl", "content");

これを入れ忘れていたのだ…。
query.setQueryで値を入れればそれでいいと思っていたんだ…。
勘違いはnullのもと。


これで晴れてスニペットを取得できた!