Ignore:
Timestamp:
2016-11-02T14:17:45+13:00 (7 years ago)
Author:
davidb
Message:

Support for randonly choosing Solr endpoints added in

File:
1 edited

Legend:

Unmodified
Added
Removed
  • other-projects/hathitrust/wcsa/extracted-features-solr/trunk/solr-ingest/src/main/java/org/hathitrust/extractedfeatures/PerPageJSONMap.java

    r31013 r31028  
    11package org.hathitrust.extractedfeatures;
     2
     3import java.util.ArrayList;
    24
    35import org.apache.spark.api.java.function.Function;
    46import org.apache.spark.api.java.function.MapFunction;
    57import org.apache.spark.util.DoubleAccumulator;
     8import org.apache.spark.util.LongAccumulator;
    69import org.json.JSONObject;
    710
     
    1215   
    1316    protected String _input_dir;
    14     protected String _solr_url;
    1517    protected String _output_dir;
    1618    protected int    _verbosity;
    1719   
    18     protected DoubleAccumulator _progress_accum;
    19     protected double            _progress_step;
     20    protected final ArrayList<String> _solr_endpoints;
     21    protected final int _solr_endpoints_len;
     22   
     23    protected LongAccumulator _progress_accum;
     24    protected long            _progress_step;
    2025   
    2126   
    22     public PerPageJSONMap(String input_dir, String solr_url, String output_dir, int verbosity,
    23                           DoubleAccumulator progress_accum, double progress_step)
     27    public PerPageJSONMap(String input_dir, ArrayList<String> solr_endpoints, String output_dir, int verbosity,
     28                          LongAccumulator progress_accum, long progress_step)
    2429    {
    2530        _input_dir  = input_dir;
    26         _solr_url   = solr_url;
    2731        _output_dir = output_dir;
    2832        _verbosity  = verbosity;
     33       
     34        _solr_endpoints   = solr_endpoints;
     35        _solr_endpoints_len = _solr_endpoints.size();
    2936       
    3037        _progress_accum = progress_accum;
     
    4552        }
    4653       
    47                    
    48         if (_solr_url != null) {
     54        String solr_url = null;
     55        if (_solr_endpoints_len > 0) {
     56            int random_choice = (int)(_solr_endpoints_len * Math.random());
     57            solr_url = _solr_endpoints.get(random_choice);
     58        }
     59               
     60        if (solr_url != null) {
    4961            if ((_verbosity >=2) && (random_test)) {
    5062                System.out.println("==================");
    51                 System.out.println("Posting to: " + _solr_url);
     63                System.out.println("Posting to: " + solr_url);
    5264                System.out.println("==================");
    5365            }
    54             SolrDocJSON.postSolrDoc(_solr_url, solr_add_doc_json);
     66            SolrDocJSON.postSolrDoc(solr_url, solr_add_doc_json);
    5567        }
    5668
Note: See TracChangeset for help on using the changeset viewer.