Project

General

Profile

1
package edu.ucsb.nceas.metacat.index;
2

    
3
import java.io.File;
4
import java.util.ArrayList;
5
import java.util.List;
6

    
7
import org.apache.commons.io.FileUtils;
8
import org.apache.solr.client.solrj.SolrServer;
9
import org.apache.solr.client.solrj.response.QueryResponse;
10
import org.apache.solr.common.SolrDocumentList;
11
import org.apache.solr.common.params.SolrParams;
12
import org.apache.solr.servlet.SolrRequestParsers;
13
import org.dataone.cn.indexer.solrhttp.SolrDoc;
14
import org.junit.Before;
15
import org.junit.Ignore;
16
import org.junit.Test;
17

    
18
import edu.ucsb.nceas.metacat.common.SolrServerFactory;
19
import edu.ucsb.nceas.metacat.index.resourcemap.ResourceMapSubprocessor;
20

    
21
public class SolrMetacatIdsComparatorIT {
22
    
23
  
24
    private static final String metacatIDFileName = "ids";
25
    private static final String NOTINSOLR = "not_in_solr_but_in_metacat_ids";
26
    private static final String NUMBEROFIDS = "number_of_ids_in_solr";
27
    //private static final String NOTINMETACAT = "in_solr_but_not_in_metacat_ids";
28
    private File metacatIdsFile = null;
29
    private File notInSolrFile = null;
30
    private File notInMetacatFile = null;
31
    private File numberOfIdsFile = null;
32
   
33
    
34
    @Before
35
    public void setUp() throws Exception {    
36
        /*notInMetacatFile = new File(NOTINMETACAT);
37
        if(notInMetacatFile.exists()) {
38
            notInMetacatFile.delete();
39
        }
40
        notInMetacatFile.createNewFile();*/
41
    }
42
    
43
    
44
    /**
45
     * Figure out ids which have been indexed.
46
     */
47
    @Test
48
    @Ignore
49
    public void figureIdsNotIndexed() throws Exception {
50
        metacatIdsFile = new File( metacatIDFileName);
51
        notInSolrFile = new File(NOTINSOLR);
52
        if(notInSolrFile.exists()) {
53
            notInSolrFile.delete();
54
        }
55
        notInSolrFile.createNewFile();
56
        List<String> metacatIds = FileUtils.readLines(metacatIdsFile, "UTF-8");
57
        boolean appending = true;
58
        if(metacatIds != null) {
59
            for(String id : metacatIds) {
60
                //String id = metacatIds.get(0);
61
                if(id != null && !id.trim().equals("")) {
62
                    SolrDoc doc = ResourceMapSubprocessor.getSolrDoc(id);
63
                    if(doc == null) {
64
                        List<String> line = new ArrayList<String>();
65
                        line.add(id);
66
                        FileUtils.writeLines(notInSolrFile, line, appending);
67
                    } 
68
                }
69
            }
70
        }
71
    }
72
    
73
    /**
74
     * Figure out ids which have been indexed.
75
     */
76
    @Test
77
    @Ignore
78
    public void getNumberOfIdsInSolr() throws Exception {
79
        numberOfIdsFile = new File(NUMBEROFIDS);
80
        if(numberOfIdsFile.exists()) {
81
            numberOfIdsFile.delete();
82
        }
83
        numberOfIdsFile.createNewFile();
84
        String query = "q=*:*";
85
        SolrParams solrParams = SolrRequestParsers.parseQueryString(query);
86
        SolrServer solrServer = SolrServerFactory.createSolrServer();
87
        QueryResponse response = solrServer.query(solrParams);
88
        SolrDocumentList list = response.getResults();
89
        long number = list.getNumFound();
90
        FileUtils.writeStringToFile(numberOfIdsFile, (new Long(number)).toString());
91
    }
92
}
(5-5/5)