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

Michael McCandless commented on LUCENE-3454:
--------------------------------------------

bq. I could set MP in such a way that forceMerge(1) would still do nothing. 
That's very simple in fact, and I do this today.

Sure, but remember: 1) this is the exception case (not the rule), and
2) you are an expert user.

We should name our APIs according to what they "typically" do, not by
the exceptional cases, which can and should be handled by javadocs
(for example, that you must close your IW if you hit OOME during
addDocument).

The expert users (like you) who are bumping up against these
exceptions can easily understand and handle them.

I think forceMerge(int) does a pretty good job explaining what the MP
is going to try to do.

bq. I think that the problem is that we try to come up with names that reflect 
what API we IndexWriter should call on MP. 

Right, optimize() is really sugar for "invoking the current MP and do
whatever it says".

bq. So maybe we should go for a more extreme change – how about having one 
method merge() which takes a MergePolicy with a single method 
findSegmentsForMerge().

This is a great idea!  But I think we should pursue it under a new
issue, after renaming the optimize method?  It's a bigger change.

If we took this approach... I think IW would still need a "default MP"
that it uses to kick off natural merges over time?  (Ie, after a new
segment is flushed).

Alternatively, we could have this extra MP sit fully "outside" of IW,
and so instead of calling IW.merge(MP) you'd call MP.merge(IW), and
that "foreign" MP would register merges with IW?  Still, it's gonna
get tricky, how the "natural" MP interacts with this foreign MP.

Or... maybe we remove IW.optimize, and instead open up a method on
each MP impl (eg MP.forceMerge(int)), and you invoke this method on
the MP instead?  This way you still have the one MP, but IW doesn't
need to expose hard-to-name sugar?  Still sounds tricky though... the
MP would ask IW to maybeMerge

                
> rename optimize to a less cool-sounding name
> --------------------------------------------
>
>                 Key: LUCENE-3454
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3454
>             Project: Lucene - Java
>          Issue Type: Improvement
>    Affects Versions: 3.4, 4.0
>            Reporter: Robert Muir
>            Assignee: Michael McCandless
>         Attachments: LUCENE-3454.patch
>
>
> I think users see the name optimize and feel they must do this, because who 
> wants a suboptimal system? but this probably just results in wasted time and 
> resources.
> maybe rename to collapseSegments or something?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



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

Reply via email to