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.dataone.cn.indexer.solrhttp.SolrElementField;
15
import org.junit.Before;
16
import org.junit.Ignore;
17
import org.junit.Test;
18

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

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