Ignore:
Timestamp:
2017-03-13T15:31:40+13:00 (7 years ago)
Author:
davidb
Message:

Added in storing of top-level document metadata as separate solr-doc

File:
1 edited

Legend:

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

    r31499 r31505  
    2828public class SolrDocJSON {
    2929
     30    protected static JSONObject generateToplevelMetadataSolrDocJSON(String volume_id, JSONObject ef_metadata)
     31    {
     32        JSONObject solr_update_json = null;
     33       
     34       
     35        String [] metadata_single = new String[] {
     36                "accessProfile",
     37                "rightsAttributes",
     38                "hathitrustRecordNumber",
     39                "title",
     40                "imprint",
     41                "pubDate",
     42                "pubPlace",
     43                "language",
     44                "issuance",
     45                "typeOfResource"
     46        };
     47
     48        String [] metadata_multiple = new String[] {
     49                "oclc",
     50                "isbn",
     51                "issn",
     52                "lccn",
     53                "genre",       
     54                "names"
     55        };
     56
     57        if (ef_metadata != null) {
     58           
     59            // For JSON Solr format see:
     60            //   https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers
     61               
     62            //String title= ef_metadata.getString("title");
     63            JSONObject solr_add_json = new JSONObject();
     64           
     65            JSONObject solr_doc_json = new JSONObject();
     66            solr_doc_json.put("id", volume_id);
     67           
     68            for (String metaname: metadata_single) {
     69                String metavalue = ef_metadata.getString(metaname);
     70                if (metavalue != null) {
     71                    solr_doc_json.put(metaname+"_t",metavalue);
     72                }
     73            }
     74           
     75            for (String metaname: metadata_multiple) {
     76                JSONArray metavalues = ef_metadata.getJSONArray(metaname);
     77                if (metavalues != null) {
     78                    solr_doc_json.put(metaname+"_t",metavalues);
     79                }
     80            }
     81           
     82            solr_add_json.put("commitWithin", 5000);
     83            solr_add_json.put("doc", solr_doc_json);
     84
     85            solr_update_json = new JSONObject();
     86            solr_update_json.put("add",solr_add_json);
     87       
     88        }
     89        else {
     90            System.err.println("Warning: null metadata for '" + volume_id + "'");
     91        }
     92
     93        return solr_update_json;
     94    }
     95
     96
    3097   
    3198    protected static ArrayList<String> getTokenPosCountWords(JSONObject ef_token_pos_count, String page_id,
     
    376443        }
    377444    }
     445   
    378446    protected static JSONObject generateSolrDocJSON(String volume_id, String page_id, JSONObject ef_page,
    379447                                                    WhitelistBloomFilter whitelist_bloomfilter,
     
    618686            e.printStackTrace();
    619687        }
    620        
    621688    }
    622689}
Note: See TracChangeset for help on using the changeset viewer.