[ http://issues.apache.org/jira/browse/SOLR-11?page=all ]

Yonik Seeley updated SOLR-11:
-----------------------------

    Attachment: ArrayQueue.java

I looked it over quick, looks fine to me!

A few weeks ago I did some more premature optimization, writing a circular 
queue (power-of-two based) that's about twice as fast as a LinkedList for our 
typical usage.  I was intending it for use in BufferedTokenFilter if 
insertion/removal of tokens in the middle of the buffers was unneeded (or rare, 
as it could be implemented).

Anyway, I'm attaching it here for lack of a better place.  I support committing 
the current BufferedTokenFilter as-is, since I doubt the LinkedList 
implementation will be any kind of bottleneck.

> DeDupTokenFilter{Factory}
> -------------------------
>
>          Key: SOLR-11
>          URL: http://issues.apache.org/jira/browse/SOLR-11
>      Project: Solr
>         Type: Wish

>   Components: search
>     Reporter: Hoss Man
>     Assignee: Hoss Man
>  Attachments: ArrayQueue.java, 
> SOLR-11-BufferedTokenStream-RemoveDuplicatesTokenFilter.patch, 
> solr.analysis.RemoveDuplicateTokensFilter.java, 
> solr.analysys.RemomveDuplicateTokensFilter.linkedhashmap.java
>
> I recently noticed a situation in which my Query analyzer was producing the 
> same Token more then once, resulting in it getting two equally boosted 
> clauses in the resulting query.  In my specific case, i was using the same 
> synonym file for multiple fields (some stemmed some not) and two synonyms for 
> a word stemmed to the same root, which ment that particular word was worth 
> twice as as any of the other variations of the synonym -- but I can imagine 
> other situations where this might come up, both at index time and at query 
> time, particularlay when using SynonymFilter in combination with the 
> WordDelimiter filter.
> It occured to me that a DeDupFilter would be handy.  In it's simplest form it 
> would drop any Token it gets where the startOffset, endOffset,termText,and 
> type are all identical to the previous token and the positionIncriment is 0.  
> A more robust implimentation might support init options indicating that only 
> certain combinations of those things should be used to determine equality 
> (ie: just termText, just termText and positionIncriment=0, etc...) but in 
> this case, an option might also be neccessary to determine with of the Tokens 
> should be propogated (the first of the last)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to