@SuppressWarnings("unchecked") private static AnalyzerDefinition createAnalyzerDefinition(NamedList<Object> analyzerNamedList) { AnalyzerDefinition analyzerDefinition = new AnalyzerDefinition(); Map<String, Object> analyzerAttributes = extractAttributeMap(analyzerNamedList); analyzerDefinition.setAttributes(analyzerAttributes); List<NamedList<Object>> charFiltersList = (List<NamedList<Object>>) analyzerNamedList.get("charFilters"); if (charFiltersList != null) { List<Map<String, Object>> charFiltersAttributesList = new LinkedList<>(); for (NamedList<Object> charFilterNamedList : charFiltersList) { Map<String, Object> charFilterAttributes = extractAttributeMap(charFilterNamedList); charFiltersAttributesList.add(charFilterAttributes); } analyzerDefinition.setCharFilters(charFiltersAttributesList); } NamedList<Object> tokenizerNamedList = (NamedList<Object>) analyzerNamedList.get("tokenizer"); if (tokenizerNamedList != null) { Map<String, Object> tokenizerAttributes = extractAttributeMap(tokenizerNamedList); analyzerDefinition.setTokenizer(tokenizerAttributes); } List<NamedList<Object>> filtersList = (List<NamedList<Object>>) analyzerNamedList.get("filters"); List<Map<String, Object>> filtersAttributesList = new LinkedList<>(); if (filtersList != null) { for (NamedList<Object> filterNamedList : filtersList) { Map<String, Object> filterAttributes = extractAttributeMap(filterNamedList); filtersAttributesList.add(filterAttributes); } analyzerDefinition.setFilters(filtersAttributesList); } return analyzerDefinition; }
private static NamedList<Object> createAnalyzerNamedList(AnalyzerDefinition analyzerDefinition) { NamedList<Object> analyzerNamedList = new NamedList<>(); Map<String, Object> analyzerAttributes = analyzerDefinition.getAttributes(); if (analyzerAttributes != null) analyzerNamedList.addAll(analyzerAttributes); List<Map<String, Object>> charFiltersAttributes = analyzerDefinition.getCharFilters(); if (charFiltersAttributes != null) { List<NamedList<Object>> charFiltersList = new LinkedList<>(); for (Map<String, Object> charFilterAttributes : charFiltersAttributes) charFiltersList.add(new NamedList<>(charFilterAttributes)); analyzerNamedList.add("charFilters", charFiltersList); } Map<String, Object> tokenizerAttributes = analyzerDefinition.getTokenizer(); if (tokenizerAttributes != null) { analyzerNamedList.add("tokenizer", new NamedList<>(tokenizerAttributes)); } List<Map<String, Object>> filtersAttributes = analyzerDefinition.getFilters(); if (filtersAttributes != null) { List<NamedList<Object>> filtersList = new LinkedList<>(); for (Map<String, Object> filterAttributes : filtersAttributes) filtersList.add(new NamedList<>(filterAttributes)); analyzerNamedList.add("filters", filtersList); } return analyzerNamedList; }
AnalyzerDefinition indexAnalyzerDefinition1 = new AnalyzerDefinition(); Map<String, Object> indexTokenizerAttributes1 = new HashMap<String, Object>(); indexTokenizerAttributes1.put("class", "solr.WhitespaceTokenizerFactory"); indexAnalyzerDefinition1.setTokenizer(indexTokenizerAttributes1); Map<String, Object> indexLowerCaseFilterAttributes1 = new HashMap<String, Object>(); indexLowerCaseFilterAttributes1.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> indexFilterAttributes1 = new ArrayList<Map<String, Object>>(); indexFilterAttributes1.add(indexLowerCaseFilterAttributes1); indexAnalyzerDefinition1.setFilters(indexFilterAttributes1); AnalyzerDefinition queryAnalyzerDefinition1 = new AnalyzerDefinition(); Map<String, Object> queryTokenizerAttributes1 = new HashMap<String, Object>(); queryTokenizerAttributes1.put("class", "solr.WhitespaceTokenizerFactory"); queryAnalyzerDefinition1.setTokenizer(queryTokenizerAttributes1); Map<String, Object> queryLowerCaseFilterAttributes1 = new HashMap<String, Object>(); queryLowerCaseFilterAttributes1.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> queryFilterAttributes1 = new ArrayList<Map<String, Object>>(); queryFilterAttributes1.add(queryLowerCaseFilterAttributes1); queryAnalyzerDefinition1.setFilters(queryFilterAttributes1); AnalyzerDefinition indexAnalyzerDefinition2 = new AnalyzerDefinition(); Map<String, Object> indexTokenizerAttributes2 = new HashMap<String, Object>(); indexTokenizerAttributes2.put("class", "solr.KeywordTokenizerFactory"); indexAnalyzerDefinition2.setTokenizer(indexTokenizerAttributes2); Map<String, Object> indexLowerCaseFilterAttributes2 = new HashMap<String, Object>(); indexLowerCaseFilterAttributes2.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> indexFilterAttributes2 = new ArrayList<Map<String, Object>>(); indexFilterAttributes2.add(indexLowerCaseFilterAttributes2); indexAnalyzerDefinition2.setFilters(indexFilterAttributes2);
/** * Adds (or replaces) a type definition for the {@link #addFields() fields used by this translation}. * * @throws SolrServerException if communicating with the Solr server failed * @throws IOException if communicating with the Solr server failed */ protected void addFieldType() throws SolrServerException, IOException { FieldTypeDefinition fieldTypeDefinition = new FieldTypeDefinition(); Map<String, Object> fieldTypeAttributes = new LinkedHashMap<>(); String name = "text_general_" + getTargetLocale().toString(); fieldTypeAttributes.put("name", name); fieldTypeAttributes.put("class", "solr.TextField"); fieldTypeDefinition.setAttributes(fieldTypeAttributes); AnalyzerDefinition analyzerDefinition = new AnalyzerDefinition(); analyzerDefinition.setAttributes( Collections.<String, Object>singletonMap("class", getAnalyzerType())); fieldTypeDefinition.setAnalyzer(analyzerDefinition); try { // The current version (5.5) of SolrJ/EmbeddedSolrServer doesn't support getting schema information, // so we do this the ugly way: try to add, check for errors, try to replace UpdateResponse response = new SchemaRequest.AddFieldType(fieldTypeDefinition).process(getClient()); if (response.getResponse().get("errors") != null) { response = new SchemaRequest.ReplaceFieldType(fieldTypeDefinition).process(getClient()); } this.logger.debug(response.toString()); } catch (Exception ex) { } }
AnalyzerDefinition indexAnalyzerDefinition1 = new AnalyzerDefinition(); Map<String, Object> indexTokenizerAttributes1 = new HashMap<String, Object>(); indexTokenizerAttributes1.put("class", "solr.WhitespaceTokenizerFactory"); indexAnalyzerDefinition1.setTokenizer(indexTokenizerAttributes1); Map<String, Object> indexLowerCaseFilterAttributes1 = new HashMap<String, Object>(); indexLowerCaseFilterAttributes1.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> indexFilterAttributes1 = new ArrayList<Map<String, Object>>(); indexFilterAttributes1.add(indexLowerCaseFilterAttributes1); indexAnalyzerDefinition1.setFilters(indexFilterAttributes1); AnalyzerDefinition queryAnalyzerDefinition1 = new AnalyzerDefinition(); Map<String, Object> queryTokenizerAttributes1 = new HashMap<String, Object>(); queryTokenizerAttributes1.put("class", "solr.WhitespaceTokenizerFactory"); queryAnalyzerDefinition1.setTokenizer(queryTokenizerAttributes1); Map<String, Object> queryLowerCaseFilterAttributes1 = new HashMap<String, Object>(); queryLowerCaseFilterAttributes1.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> queryFilterAttributes1 = new ArrayList<Map<String, Object>>(); queryFilterAttributes1.add(queryLowerCaseFilterAttributes1); queryAnalyzerDefinition1.setFilters(queryFilterAttributes1); AnalyzerDefinition indexAnalyzerDefinition2 = new AnalyzerDefinition(); Map<String, Object> indexTokenizerAttributes2 = new HashMap<String, Object>(); indexTokenizerAttributes2.put("class", "solr.KeywordTokenizerFactory"); indexAnalyzerDefinition2.setTokenizer(indexTokenizerAttributes2); Map<String, Object> indexLowerCaseFilterAttributes2 = new HashMap<String, Object>(); indexLowerCaseFilterAttributes2.put("class", "solr.LowerCaseFilterFactory"); List<Map<String, Object>> indexFilterAttributes2 = new ArrayList<Map<String, Object>>(); indexFilterAttributes2.add(indexLowerCaseFilterAttributes2); indexAnalyzerDefinition2.setFilters(indexFilterAttributes2);
/** * Adds (or replaces) a type definition for the {@link #addFields() fields used by this translation}. * * @throws SolrServerException if communicating with the Solr server failed * @throws IOException if communicating with the Solr server failed */ protected void addFieldType() throws SolrServerException, IOException { FieldTypeDefinition fieldTypeDefinition = new FieldTypeDefinition(); Map<String, Object> fieldTypeAttributes = new LinkedHashMap<>(); String name = "text_general_" + getTargetLocale().toString(); fieldTypeAttributes.put("name", name); fieldTypeAttributes.put("class", "solr.TextField"); fieldTypeDefinition.setAttributes(fieldTypeAttributes); AnalyzerDefinition analyzerDefinition = new AnalyzerDefinition(); analyzerDefinition.setAttributes( Collections.<String, Object>singletonMap("class", getAnalyzerType())); fieldTypeDefinition.setAnalyzer(analyzerDefinition); try { // The current version (5.5) of SolrJ/EmbeddedSolrServer doesn't support getting schema information, // so we do this the ugly way: try to add, check for errors, try to replace UpdateResponse response = new SchemaRequest.AddFieldType(fieldTypeDefinition).process(getClient()); if (response.getResponse().get("errors") != null) { response = new SchemaRequest.ReplaceFieldType(fieldTypeDefinition).process(getClient()); } this.logger.debug(response.toString()); } catch (Exception ex) { } }
@SuppressWarnings("unchecked") private static AnalyzerDefinition createAnalyzerDefinition(NamedList<Object> analyzerNamedList) { AnalyzerDefinition analyzerDefinition = new AnalyzerDefinition(); Map<String, Object> analyzerAttributes = extractAttributeMap(analyzerNamedList); analyzerDefinition.setAttributes(analyzerAttributes); List<NamedList<Object>> charFiltersList = (List<NamedList<Object>>) analyzerNamedList.get("charFilters"); if (charFiltersList != null) { List<Map<String, Object>> charFiltersAttributesList = new LinkedList<>(); for (NamedList<Object> charFilterNamedList : charFiltersList) { Map<String, Object> charFilterAttributes = extractAttributeMap(charFilterNamedList); charFiltersAttributesList.add(charFilterAttributes); } analyzerDefinition.setCharFilters(charFiltersAttributesList); } NamedList<Object> tokenizerNamedList = (NamedList<Object>) analyzerNamedList.get("tokenizer"); if (tokenizerNamedList != null) { Map<String, Object> tokenizerAttributes = extractAttributeMap(tokenizerNamedList); analyzerDefinition.setTokenizer(tokenizerAttributes); } List<NamedList<Object>> filtersList = (List<NamedList<Object>>) analyzerNamedList.get("filters"); List<Map<String, Object>> filtersAttributesList = new LinkedList<>(); if (filtersList != null) { for (NamedList<Object> filterNamedList : filtersList) { Map<String, Object> filterAttributes = extractAttributeMap(filterNamedList); filtersAttributesList.add(filterAttributes); } analyzerDefinition.setFilters(filtersAttributesList); } return analyzerDefinition; }
private static NamedList<Object> createAnalyzerNamedList(AnalyzerDefinition analyzerDefinition) { NamedList<Object> analyzerNamedList = new NamedList<>(); Map<String, Object> analyzerAttributes = analyzerDefinition.getAttributes(); if (analyzerAttributes != null) analyzerNamedList.addAll(analyzerAttributes); List<Map<String, Object>> charFiltersAttributes = analyzerDefinition.getCharFilters(); if (charFiltersAttributes != null) { List<NamedList<Object>> charFiltersList = new LinkedList<>(); for (Map<String, Object> charFilterAttributes : charFiltersAttributes) charFiltersList.add(new NamedList<>(charFilterAttributes)); analyzerNamedList.add("charFilters", charFiltersList); } Map<String, Object> tokenizerAttributes = analyzerDefinition.getTokenizer(); if (tokenizerAttributes != null) { analyzerNamedList.add("tokenizer", new NamedList<>(tokenizerAttributes)); } List<Map<String, Object>> filtersAttributes = analyzerDefinition.getFilters(); if (filtersAttributes != null) { List<NamedList<Object>> filtersList = new LinkedList<>(); for (Map<String, Object> filterAttributes : filtersAttributes) filtersList.add(new NamedList<>(filterAttributes)); analyzerNamedList.add("filters", filtersList); } return analyzerNamedList; }