[ 
https://issues.apache.org/jira/browse/LUCENE-1162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Cowan updated LUCENE-1162:
-------------------------------

    Attachment: lucene-threadlocal.patch

Attaching patch (lucene-threadlocal.patch) which serves as an example for how 
the previous patch might be built-upon to provide improvements or pluggable 
functionality. This is a fix for LUCENE-806 (the need to use ThreadLocal 
Comparators for sorting performance); it provides a replacement implementation 
of StringComparatorSource. Enabling this functionality would be as simple as:
  FieldSortedHitQueue.registerComparatorSource(SortField.STRING, new 
ThreadLocalStringComparatorSource());
and the new behaviour would kick in, relatively seamlessly.

Note that this patch includes a new version of StringComparatorSource, which 
replaces the one from the previous patch.

I will attach this to LUCENE-806 as well for discussion on that end.

> Improve architecture of FieldSortedHitQueue
> -------------------------------------------
>
>                 Key: LUCENE-1162
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1162
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Query/Scoring
>    Affects Versions: 2.3
>            Reporter: Paul Cowan
>            Priority: Minor
>         Attachments: lucene-fshq-restructure.patch, lucene-threadlocal.patch
>
>
> Per the discussion (quite some time ago) on issue LUCENE-806, I'd like to 
> propose an architecture change to the way FieldSortedHitQueue works, and in 
> particular the way it creates SortComparatorSources. I think (I hope) that 
> anyone who looks at the FSHQ code will agree that the class does a lot and 
> much of it's repetitive stuff that really has no business being in that class.
> I am about to attach a patch which, in and of itself, doesn't really achieve 
> much that's concrete but does tidy things up a great deal and makes it easier 
> to plug in different behaviours. I then have a subsequent patch which 
> provides a fairly simple and flexible example of how you might replace an 
> implementation, in this case the field-local-String-comparator version from 
> LUCENE-806.
> The downside to this patch is that it involved changing the signature of 
> SortComparatorSource.newComparator to take a Locale. There would be ways 
> around this (letting FieldSortedHitQueue take in either a 
> SortComparatorSource or some new, improved interface which takes a Locale 
> (and possibly extends SortComparatorSource). I'm open to this but personally 
> I think that the Locale version makes sense and would suggest that the code 
> would be nicer by breaking the API (and hence targeting this to, presumably, 
> 3.0 at a minimum).
> This code does not include specific tests (I will add these, if people like 
> the general idea I'm proposing here) but all current tests pass with this 
> change.
> Patch to follow.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to