/** * {@inheritDoc} */ public CollapseCollector createCollapseCollector(SolrQueryRequest request) { SolrParams params = request.getParams(); String collapseField = params.required().get(CollapseParams.COLLAPSE_FIELD); boolean includeFieldValueCount = params.getBool(CollapseParams.COLLAPSE_INFO_COUNT, true); return includeFieldValueCount ? new FieldValueCountCollapseCollector(request.getSearcher(), collapseField) : null; }
/** * Handle "SWAP" action * * @param req * @param rsp * * @return true if a modification has resulted that requires persistance * of the CoreContainer configuration. */ protected boolean handleSwapAction(SolrQueryRequest req, SolrQueryResponse rsp) { final SolrParams params = req.getParams(); final SolrParams required = params.required(); final String cname = params.get(CoreAdminParams.CORE); boolean doPersist = params.getBool(CoreAdminParams.PERSISTENT, coreContainer.isPersistent()); String other = required.get(CoreAdminParams.OTHER); coreContainer.swap(cname, other); return doPersist; }
SolrParams required = params.required(); SolrCore core = req.getCore();
this.needDocSet = params.getBool(FacetParams.FACET, false); SolrParams required = params.required(); String[] fields = splitList.split(required.get(MoreLikeThisParams.SIMILARITY_FIELDS)); if( fields.length < 1 ) {
this.needDocSet = params.getBool(FacetParams.FACET,false); SolrParams required = params.required(); String[] fields = splitList.split( required.get(UnsupervisedFeedbackParams.SIMILARITY_FIELDS) ); if( fields.length < 1 ) {
protected boolean handleMergeAction(SolrQueryRequest req, SolrQueryResponse rsp) throws IOException { boolean doPersist = false; SolrParams params = req.getParams(); SolrParams required = params.required(); String cname = required.get(CoreAdminParams.CORE); SolrCore core = coreContainer.getCore(cname); if (core != null) { try { doPersist = coreContainer.isPersistent(); String[] dirNames = required.getParams(CoreAdminParams.INDEX_DIR); DirectoryFactory dirFactory = core.getDirectoryFactory(); Directory[] dirs = new Directory[dirNames.length]; for (int i = 0; i < dirNames.length; i++) { dirs[i] = dirFactory.open(dirNames[i]); } UpdateRequestProcessorChain processorChain = core.getUpdateProcessingChain(params.get(UpdateParams.UPDATE_PROCESSOR)); SolrQueryRequest wrappedReq = new LocalSolrQueryRequest(core, req.getParams()); UpdateRequestProcessor processor = processorChain.createProcessor(wrappedReq, rsp); processor.processMergeIndexes(new MergeIndexesCommand(dirs)); } finally { core.close(); } } return doPersist; }
/** * Constructs a base collapser. * * @param rb The response builder * @param collapseCollectorFactories A list of collapse collector factories configured for the document collapser * @throws IOException if index searcher related problems occur */ protected AbstractDocumentCollapser(ResponseBuilder rb, List<CollapseCollectorFactory> collapseCollectorFactories) throws IOException { this.collapseCollectorFactories = collapseCollectorFactories; // Allocate data structures hashMaxSize = rb.req.getCore().getSolrConfig().hashDocSetMaxSize; docbuf = new int[hashMaxSize]; this.searcher = rb.req.getSearcher(); this.flags = rb.getFieldFlags(); // parsing Solr parameters SolrParams params = rb.req.getParams(); collapseField = params.required().get(CollapseParams.COLLAPSE_FIELD); Integer ct = params.getInt(CollapseParams.COLLAPSE_THRESHOLD); if (ct == null) { ct = params.getInt(CollapseParams.COLLAPSE_MAX); } collapseThreshold = ct != null ? ct : 1; checkCollapseField(rb.req.getSchema()); int collapseMaxDocs = params.getInt(CollapseParams.COLLAPSE_MAXDOCS, 0); this.collapseMaxDocs = collapseMaxDocs <= 0 ? searcher.maxDoc() : collapseMaxDocs; includeDebugInformation = params.getBool(CollapseParams.COLLAPSE_DEBUG ,false); collapseContext = new CollapseContext(); collectors = initializeCollapseCollectors(rb.req); }
public MoreLikeThisHelper( SolrParams params, SolrIndexSearcher searcher ) { this.searcher = searcher; this.reader = searcher.getReader(); this.uniqueKeyField = searcher.getSchema().getUniqueKeyField(); this.needDocSet = params.getBool(FacetParams.FACET,false); SolrParams required = params.required(); String[] fields = splitList.split( required.get(MoreLikeThisParams.SIMILARITY_FIELDS) ); if( fields.length < 1 ) { throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "MoreLikeThis requires at least one similarity field: "+MoreLikeThisParams.SIMILARITY_FIELDS ); } this.mlt = new MoreLikeThis( reader ); // TODO -- after LUCENE-896, we can use , searcher.getSimilarity() ); mlt.setFieldNames(fields); mlt.setAnalyzer( searcher.getSchema().getAnalyzer() ); // configurable params mlt.setMinTermFreq( params.getInt(MoreLikeThisParams.MIN_TERM_FREQ, MoreLikeThis.DEFAULT_MIN_TERM_FREQ)); mlt.setMinDocFreq( params.getInt(MoreLikeThisParams.MIN_DOC_FREQ, MoreLikeThis.DEFAULT_MIN_DOC_FREQ)); mlt.setMinWordLen( params.getInt(MoreLikeThisParams.MIN_WORD_LEN, MoreLikeThis.DEFAULT_MIN_WORD_LENGTH)); mlt.setMaxWordLen( params.getInt(MoreLikeThisParams.MAX_WORD_LEN, MoreLikeThis.DEFAULT_MAX_WORD_LENGTH)); mlt.setMaxQueryTerms( params.getInt(MoreLikeThisParams.MAX_QUERY_TERMS, MoreLikeThis.DEFAULT_MAX_QUERY_TERMS)); mlt.setMaxNumTokensParsed(params.getInt(MoreLikeThisParams.MAX_NUM_TOKENS_PARSED, MoreLikeThis.DEFAULT_MAX_NUM_TOKENS_PARSED)); mlt.setBoost( params.getBool(MoreLikeThisParams.BOOST, false ) ); boostFields = SolrPluginUtils.parseFieldBoosts(params.getParams(MoreLikeThisParams.QF)); }