List of usage examples for org.apache.lucene.classification.document KNearestNeighborDocumentClassifier KNearestNeighborDocumentClassifier
public KNearestNeighborDocumentClassifier(IndexReader indexReader, Similarity similarity, Query query, int k, int minDocsFreq, int minTermFreq, String classFieldName, Map<String, Analyzer> field2analyzer, String... textFieldNames)
From source file:org.apache.solr.update.processor.ClassificationUpdateProcessor.java
License:Apache License
/** * Sole constructor//from w ww. ja v a 2s . c o m * * @param classificationParams classification advanced params * @param next next update processor in the chain * @param indexReader index reader * @param schema schema */ public ClassificationUpdateProcessor(ClassificationUpdateProcessorParams classificationParams, UpdateRequestProcessor next, IndexReader indexReader, IndexSchema schema) { super(next); this.trainingClassField = classificationParams.getTrainingClassField(); this.predictedClassField = classificationParams.getPredictedClassField(); this.maxOutputClasses = classificationParams.getMaxPredictedClasses(); String[] inputFieldNamesWithBoost = classificationParams.getInputFieldNames(); Algorithm classificationAlgorithm = classificationParams.getAlgorithm(); Map<String, Analyzer> field2analyzer = new HashMap<>(); String[] inputFieldNames = this.removeBoost(inputFieldNamesWithBoost); for (String fieldName : inputFieldNames) { SchemaField fieldFromSolrSchema = schema.getField(fieldName); Analyzer indexAnalyzer = fieldFromSolrSchema.getType().getQueryAnalyzer(); field2analyzer.put(fieldName, indexAnalyzer); } switch (classificationAlgorithm) { case KNN: classifier = new KNearestNeighborDocumentClassifier(indexReader, null, classificationParams.getTrainingFilterQuery(), classificationParams.getK(), classificationParams.getMinDf(), classificationParams.getMinTf(), trainingClassField, field2analyzer, inputFieldNamesWithBoost); break; case BAYES: classifier = new SimpleNaiveBayesDocumentClassifier(indexReader, null, trainingClassField, field2analyzer, inputFieldNamesWithBoost); break; } }