[ 
https://issues.apache.org/jira/browse/SOLR-5730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15119206#comment-15119206
 ] 

Christine Poerschke commented on SOLR-5730:
-------------------------------------------

bq. I don't think that we need to change all MPs to MPFs.

We currently have {{mergeFactor}} and {{maxMergeDocs}} elements alongside the 
{{mergePolicy}} element. I would see the {{MergePolicyFactory}} route as an 
opportunity to deprecate the mergeFactor/maxMergeDocs/mergePolicy elements i.e. 
for a transition period users can use the existing/deprecated elements or the 
new mergePolicyFactory element but eventually we will remove the deprecated 
elements.

*existing/deprecated:*
{code}
<mergeFactor>12</mergeFactor>
<maxMergeDocs>345</maxMergeDocs>
<mergePolicy class="..." />
{code}

*replacement:*
{code}
<mergePolicyFactory class="...Factory">
  <int name="mergeFactor">12</int>
  <int name="maxMergeDocs">345</int>
</mergePolicyFactory>
{code}

*existing code snippet:*
Note that maxMergeDocs only applies to LogMergePolicy policies.
Note that mergeFactor only applies to LogMergePolicy and TieredMergePolicy 
policies.
{code}
maxMergeDocs=solrConfig.getInt(prefix+"/maxMergeDocs",def.maxMergeDocs);
mergeFactor=solrConfig.getInt(prefix+"/mergeFactor",def.mergeFactor);
mergePolicyInfo = getPluginInfo(prefix + "/mergePolicy", solrConfig, 
def.mergePolicyInfo);
...
if (policy instanceof LogMergePolicy) {
  LogMergePolicy logMergePolicy = (LogMergePolicy) policy;
  fixUseCFMergePolicyInitArg(LogMergePolicy.class);
  if (maxMergeDocs != -1)
    logMergePolicy.setMaxMergeDocs(maxMergeDocs);
  if (mergeFactor != -1)
    logMergePolicy.setMergeFactor(mergeFactor);
} else if (policy instanceof TieredMergePolicy) {
  TieredMergePolicy tieredMergePolicy = (TieredMergePolicy) policy;
  fixUseCFMergePolicyInitArg(TieredMergePolicy.class);
  if (mergeFactor != -1) {
    tieredMergePolicy.setMaxMergeAtOnce(mergeFactor);
    tieredMergePolicy.setSegmentsPerTier(mergeFactor);
  }
} else if (mergeFactor != -1) {
  log.warn("Use of <mergeFactor> cannot be configured if merge policy is not an 
instance of LogMergePolicy or TieredMergePolicy. The configured policy's 
defaults will be used.");
}
{code}

> make Lucene's SortingMergePolicy and EarlyTerminatingSortingCollector 
> configurable in Solr
> ------------------------------------------------------------------------------------------
>
>                 Key: SOLR-5730
>                 URL: https://issues.apache.org/jira/browse/SOLR-5730
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Christine Poerschke
>            Assignee: Christine Poerschke
>            Priority: Minor
>         Attachments: SOLR-5730-part1of2.patch, SOLR-5730-part1of2.patch, 
> SOLR-5730-part2of2.patch, SOLR-5730-part2of2.patch
>
>
> *Example configuration (solrconfig.xml):*
> {noformat}
> <sortMerges enable="true">
>   <str name="sort">timestamp desc</str>
> </sortMerges>
> {noformat}
> *Example use (EarlyTerminatingSortingCollector):*
> {noformat}
> &sort=timestamp+desc&segmentTerminateEarly=true
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to