opennlp-similarity/src/main/java/opennlp/tools/similarity/apps/solr/IterativeSearchRequestHandler.java [259:320]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		if (fqs != null && fqs.length > 0) {
			BooleanQuery.Builder fquery =  new BooleanQuery.Builder();
			for (String fq : fqs) {
				QParser parser;
				try {
					parser = QParser.getParser(fq, null, req);
					fquery.add(parser.getQuery(), Occur.MUST);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			return fquery.build();
		}
		return null;
	}

	private void doSearch1(SolrDocumentList results,
			SolrIndexSearcher searcher, String q, Query filter,
			int ndocs, SolrQueryRequest req,
			Map<String,SchemaField> fields, Set<Integer> alreadyFound)
	throws IOException {

		// build custom query and extra fields
		Map<String,Object> extraFields = new HashMap<>();
		extraFields.put("search_type", "search1");
		boolean includeScore =
			req.getParams().get(CommonParams.FL).contains("score");

		int  maxDocsPerSearcherType = 0;
		float maprelScoreCutoff = 2.0f;
		append(results, searcher.search(
				filter, maxDocsPerSearcherType).scoreDocs,
				alreadyFound, fields, extraFields, maprelScoreCutoff ,
				searcher.getIndexReader(), includeScore);
	}

	// ... more doSearchXXX() calls here ...

	private void append(SolrDocumentList results, ScoreDoc[] more,
			Set<Integer> alreadyFound, Map<String,SchemaField> fields,
			Map<String,Object> extraFields, float scoreCutoff,
			IndexReader reader, boolean includeScore) throws IOException {
		for (ScoreDoc hit : more) {
			if (alreadyFound.contains(hit.doc)) {
				continue;
			}
			Document doc = reader.document(hit.doc);
			SolrDocument sdoc = new SolrDocument();
			for (String fieldname : fields.keySet()) {
				SchemaField sf = fields.get(fieldname);
				if (sf.stored()) {
					sdoc.addField(fieldname, doc.get(fieldname));
				}
			}
			for (String extraField : extraFields.keySet()) {
				sdoc.addField(extraField, extraFields.get(extraField));
			}
			if (includeScore) {
				sdoc.addField("score", hit.score);
			}
			results.add(sdoc);
			alreadyFound.add(hit.doc);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



opennlp-similarity/src/main/java/opennlp/tools/similarity/apps/solr/SyntGenRequestHandler.java [241:302]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		if (fqs != null && fqs.length > 0) {
			BooleanQuery.Builder fquery =  new BooleanQuery.Builder();
			for (String fq : fqs) {
				QParser parser;
				try {
					parser = QParser.getParser(fq, null, req);
					fquery.add(parser.getQuery(), Occur.MUST);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			return fquery.build();
		}
		return null;
	}

	private void doSearch1(SolrDocumentList results,
			SolrIndexSearcher searcher, String q, Query filter,
			int ndocs, SolrQueryRequest req,
			Map<String,SchemaField> fields, Set<Integer> alreadyFound) 
	throws IOException {

		// build custom query and extra fields
		Map<String,Object> extraFields = new HashMap<>();
		extraFields.put("search_type", "search1");
		boolean includeScore = 
			req.getParams().get(CommonParams.FL).contains("score");

		int  maxDocsPerSearcherType = 0;
		float maprelScoreCutoff = 2.0f;
		append(results, searcher.search(
				filter, maxDocsPerSearcherType).scoreDocs,
				alreadyFound, fields, extraFields, maprelScoreCutoff , 
				searcher.getIndexReader(), includeScore);
	}

	// ... more doSearchXXX() calls here ...

	private void append(SolrDocumentList results, ScoreDoc[] more, 
			Set<Integer> alreadyFound, Map<String,SchemaField> fields,
			Map<String,Object> extraFields, float scoreCutoff, 
			IndexReader reader, boolean includeScore) throws IOException {
		for (ScoreDoc hit : more) {
			if (alreadyFound.contains(hit.doc)) {
				continue;
			}
			Document doc = reader.document(hit.doc);
			SolrDocument sdoc = new SolrDocument();
			for (String fieldname : fields.keySet()) {
				SchemaField sf = fields.get(fieldname);
				if (sf.stored()) {
					sdoc.addField(fieldname, doc.get(fieldname));
				}
			}
			for (String extraField : extraFields.keySet()) {
				sdoc.addField(extraField, extraFields.get(extraField));
			}
			if (includeScore) {
				sdoc.addField("score", hit.score);
			}
			results.add(sdoc);
			alreadyFound.add(hit.doc);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



