Project

General

Profile

« Previous | Next » 

Revision 7592

Added by Jing Tao almost 11 years ago

Print out the solr query result in the xml format.

View differences:

metacat-index/src/test/java/edu/ucsb/nceas/metacat/index/SolrIndexIT.java
4 4

  
5 5
import java.io.File;
6 6
import java.io.FileInputStream;
7
import java.io.IOException;
7 8
import java.io.InputStream;
9
import java.io.StringWriter;
10
import java.io.Writer;
8 11
import java.util.List;
9 12

  
10 13
import org.apache.solr.client.solrj.SolrServer;
11 14
import org.apache.solr.client.solrj.SolrServerException;
15
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
12 16
import org.apache.solr.client.solrj.response.QueryResponse;
13 17
import org.apache.solr.common.params.SolrParams;
18
import org.apache.solr.core.CoreContainer;
19
import org.apache.solr.core.SolrCore;
20
import org.apache.solr.request.LocalSolrQueryRequest;
21
import org.apache.solr.response.SolrQueryResponse;
22
import org.apache.solr.response.XMLResponseWriter;
14 23
import org.apache.solr.servlet.SolrRequestParsers;
15 24
import org.dataone.service.types.v1.SystemMetadata;
16 25
import org.dataone.service.util.TypeMarshaller;
......
76 85
    /**
77 86
     * Test building index for an insert.
78 87
     */
79
    //@Test
80
    /*public void testDelete() throws Exception {
88
    @Test
89
    public void testDelete() throws Exception {
81 90
       SolrIndex solrIndex = generateSolrIndex();
82
       //solrIndex.remove(newId);
83
       //String result = doQuery(solrIndex.getSolrServer());
84
       //assertTrue(!result.contains("version1"));
85
       //assertTrue(!result.contains("version2"));
86
    }*/
91
       solrIndex.remove(newId);
92
       String result = doQuery(solrIndex.getSolrServer());
93
       assertTrue(!result.contains("version1"));
94
       assertTrue(!result.contains("version2"));
95
    }
87 96
    
88 97
    
89 98
    /*
......
96 105
                SolrParams solrParams = SolrRequestParsers.parseQueryString(request
97 106
                        .toString());
98 107
                QueryResponse reponse = server.query(solrParams);
108
                String result = toXML(solrParams, reponse);
99 109
                System.out.println("**************************************************************************");
100 110
                System.out.println("The query result:\n");
101
                System.out.println(reponse.toString());
111
                System.out.println(result);
102 112
                System.out.println("**************************************************************************");
103
                return reponse.toString();
113
                return result;
104 114
    }
105

  
106 115
    
107 116
    /*
108
     * Print out the QueryResponse
117
     * Transform the query response to the xml format.
109 118
     */
110
    /*private void print(QueryResponse response) {
111
        SolrDocumentList docs = response.getResults();
112
        if (docs != null) {
113
            System.out.println(docs.getNumFound() + " documents found, "
114
                    + docs.size() + " returned : ");
115
            for (int i = 0; i < docs.size(); i++) {
116
                SolrDocument doc = docs.get(i);
117
                System.out.println("\t" + doc.toString());
118
            }
119
    private String toXML(SolrParams request, QueryResponse response) {
120
        XMLResponseWriter xmlWriter = new XMLResponseWriter();
121
        Writer w = new StringWriter();
122
        SolrQueryResponse sResponse = new SolrQueryResponse();
123
        sResponse.setAllValues(response.getResponse());
124
        try {
125
            SolrCore core = null;
126
            CoreContainer container = SolrServerFactory.getCoreContainer();
127
            core = container.getCore("collection1");
128
            xmlWriter.write(w, new LocalSolrQueryRequest(core, request), sResponse);
129
        } catch (IOException e) {
130
            throw new RuntimeException("Unable to convert Solr response into XML", e);
119 131
        }
120
    }*/
132
        return w.toString();
133
    }
134

  
135

  
121 136
    
122 137
    
123 138
}
metacat-index/src/main/java/edu/ucsb/nceas/metacat/index/SolrServerFactory.java
56 56
    public static final String SOLR_HOME_PROPERTY_NAME = "solr.homeDir";
57 57

  
58 58
	public static Log log = LogFactory.getLog(SolrServerFactory.class);
59
	
60
	private static CoreContainer coreContainer = null;
59 61

  
60 62
	public static SolrServer createSolrServer() throws Exception {
61 63
		SolrServer solrServer = null;
......
63 65
		String solrHomeDir = Settings.getConfiguration().getString(SOLR_HOME_PROPERTY_NAME);
64 66
        log.info("The configured solr home from properties is " + solrHomeDir);
65 67
        File configFile = new File(solrHomeDir, "solr.xml");
66
        CoreContainer c = new CoreContainer(solrHomeDir, configFile);
67
        c.load(solrHomeDir, configFile);
68
        solrServer = new EmbeddedSolrServer(c, "collection1");
68
        coreContainer = new CoreContainer(solrHomeDir, configFile);
69
        coreContainer.load(solrHomeDir, configFile);
70
        solrServer = new EmbeddedSolrServer(coreContainer, "collection1");
69 71
        
70 72
        return solrServer;
71 73
	}
74
	
75
	public static CoreContainer getCoreContainer() {
76
	    return coreContainer;
77
	}
72 78
}

Also available in: Unified diff