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

Tim Sturge commented on LUCENE-1461:
------------------------------------

Progress report:

Having written some javadocs, I think FieldCacheRangeFilter is a better name; 
without DisjointMultiFilter the "multi" in RangeMultiFilter is confusing (after 
all, it indexes a field containing a *single* term). So at the risk of 
repainting the bikeshed I will go with FieldCacheRangeFilter.

The null versus "" distinction is completely confusing to me. I see this in 
ConstantScoreRangeQuery:

    // Map to RangeFilter semantics which are slightly different...
    RangeFilter rangeFilt = new RangeFilter
        (fieldName, lowerVal != null?lowerVal:"", upperVal,
         lowerVal==""?false:includeLower, upperVal==null?false:includeUpper,
         collator);

which makes no sense to me at all.

I'm also not sure it makes sense to allow the indexing of an empty field and 
distinguishing that case from there being nothing there. Please let me know if 
there is a usecase. The lowest impedance solution may be to write a version of 
binarySearch() that allows there to be a null in the first element and use that 
instead of Arrays.binarySearch().



> Cached filter for a single term field
> -------------------------------------
>
>                 Key: LUCENE-1461
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1461
>             Project: Lucene - Java
>          Issue Type: New Feature
>            Reporter: Tim Sturge
>         Attachments: DisjointMultiFilter.java, LUCENE-1461a.patch, 
> RangeMultiFilter.java, RangeMultiFilter.java, TermMultiFilter.java
>
>
> These classes implement inexpensive range filtering over a field containing a 
> single term. They do this by building an integer array of term numbers 
> (storing the term->number mapping in a TreeMap) and then implementing a fast 
> integer comparison based DocSetIdIterator.
> This code is currently being used to do age range filtering, but could also 
> be used to do other date filtering or in any application where there need to 
> be multiple filters based on the same single term field. I have an untested 
> implementation of single term filtering and have considered but not yet 
> implemented term set filtering (useful for location based searches) as well. 
> The code here is fairly rough; it works but lacks javadocs and toString() and 
> hashCode() methods etc. I'm posting it here to discover if there is other 
> interest in this feature; I don't mind fixing it up but would hate to go to 
> the effort if it's not going to make it into Lucene.

-- 
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