List of usage examples for org.apache.solr.common.params SolrParams toMap
@Deprecated public static Map<String, String> toMap(NamedList params)
From source file:eu.europeana.assets.service.ir.text.bm25f.parser.BM25FQParserPlugin.java
License:Apache License
@SuppressWarnings("unchecked") public void init(NamedList args) { bmParams = new BM25FParameters(); if (args != null) { k1 = (Float) args.get("k1"); String mainField = (String) args.get("mainField"); String operator = (String) args.get("operator"); if (operator != null) { if (operator.equals("OR")) { bmParams.performQueriesInOR(); } else { Object tmp = args.get("minNumberOfTerms"); if (tmp != null && tmp instanceof Integer) { Integer minNumberOfTerms = (Integer) tmp; if (minNumberOfTerms != null) { bmParams.setMinNumberOfTerms(minNumberOfTerms); }//from w w w .ja v a 2 s .co m } } } Map<String, String> averageLengthFields = SolrParams.toMap((NamedList) args.get("averageLengthFields")); Map<String, String> fieldsBoost = SolrParams.toMap((NamedList) args.get("fieldsBoost")); Map<String, String> fieldsB = SolrParams.toMap((NamedList) args.get("fieldsB")); Object[] tmp = averageLengthFields.keySet().toArray(); String[] fields = new String[tmp.length]; for (int i = 0; i < tmp.length; i++) { fields[i] = (String) tmp[i]; } Arrays.sort(fields); float[] boosts = new float[fields.length]; float[] bParams = new float[fields.length]; for (int i = 0; i < fields.length; i++) { boosts[i] = Float.parseFloat(fieldsBoost.get(fields[i])); bParams[i] = Float.parseFloat(fieldsB.get(fields[i])); float avg = Float.parseFloat(averageLengthFields.get(fields[i])); bmParams.setAverageLength(fields[i], avg); logger.info(fields[i] + "\tavgLen:" + avg + "\tboost:" + boosts[i] + "\tbParam " + bParams[i]); } bmParams.setK1(k1); bmParams.setBoosts(boosts); bmParams.setFields(fields); bmParams.setbParams(bParams); bmParams.setMainField(mainField); bmParams.setIdfField(mainField); } }
From source file:eu.europeana.ranking.bm25f.BM25FParserPlugin.java
License:Apache License
@SuppressWarnings("unchecked") public void init(NamedList args) { bmParams = new BM25FParameters(); if (args == null) { return;/* w w w. j a va2 s. c om*/ } String mainField = (String) args.get("mainField"); bmParams.setMainField(mainField); Object o = args.get("k1"); if (o == null) { logger.warn("cannot find k1 parameter in solr config"); logger.warn("using default values"); return; } float k1 = (Float) o; logger.info("K1 = " + k1); o = args.get("fieldsBoost"); if (o == null) { logger.warn("cannot find fieldsBoost parameter in solr config"); logger.warn("using default values"); return; } Map<String, String> fieldsBoost = SolrParams.toMap((NamedList) o); o = args.get("fieldsB"); if (o == null) { logger.warn("cannot find fieldsB parameter in solr config"); logger.warn("using default values"); return; } Map<String, String> fieldsB = SolrParams.toMap((NamedList) o); List<String> f = new ArrayList<String>(); for (String ffield : fieldsBoost.keySet()) { f.add(ffield); } Collections.sort(f); String[] fields = f.toArray(new String[f.size()]); Float[] boosts = new Float[fields.length]; Float[] bParams = new Float[fields.length]; for (int i = 0; i < fields.length; i++) { boosts[i] = Float.parseFloat(fieldsBoost.get(fields[i])); bParams[i] = Float.parseFloat(fieldsB.get(fields[i])); } bmParams.setFields(fields); bmParams.setBoosts(boosts); bmParams.setbParams(bParams); bmParams.setK1(k1); }