Thanks Robert,

Lucene 2740 looks really interesting.  In the meantime a JIRA issue for this 
sounds like a good idea since I'm guessing other people would like to use the 
ICUTokenizer but would also like bigrams for CJK.

I'm a bit confused over the relationship of the queryparser to the filter chain 
and whether a filter in the chain after the ICUTokenizer could construct 
bigrams if the ICUTokenizer is spitting out unigrams and the queryparser is 
then converting the unigrams to a Boolean clauses (i.e. 
autoGeneratePhraseQueries=false.)  

If ABC is a string of Han characters and the ICUTokenizer spit out unigrams A B 
C  (and we have autoGeneratePhraseQueries set to false) won't the next filter 
in the chain get each of the unigrams in a Boolean clause one at a time?  I 
guess I don't see how the next filter in the chain can reassemble the unigrams 
into overlapping bigrams.   Maybe I'm not understanding how tokens get passed 
from one filter to the next when one of the filters (or in this case the 
tokenizer) breaks a token up into multiple tokens.

Or am I getting index time analysis confused with query time analysis?

Did you mean that ICUTokenizer could be modified to output bigrams  or that a 
filter could be designed that would take the output of the ICUTokenizer and 
create shingles on tokens with the attribute for Han?


Tom

-----Original Message-----
From: Robert Muir [mailto:rcm...@gmail.com] 
Sent: Friday, February 04, 2011 12:58 PM
To: java-user@lucene.apache.org
Subject: Re: Bigrams for CJK with ICUTokenizer ?

On Fri, Feb 4, 2011 at 12:46 PM, Burton-West, Tom <tburt...@umich.edu> wrote:
> Hello all,
>
> We are using the ICUTokenizer because we have documents in about 400 
> different languages.   We are also setting autoGeneratePhraseQueries to false 
> so that CJK and other languages that don't use space to separate words won't 
> get tokenized properly by the ICUTokenizer and then the tokens automatically 
> searched as a phrase.
>
>  The ICUTokenizer emits unigrams for Chinese (HAN). We would prefer to use 
> overlapping bigrams as in the CJKAnalyzer.   Is it possible to configure the 
> ICUTokenizer to emit overlapping bigrams?
>
> Alternatively, is there some way to put some filter in the filter chain after 
> the ICUTokenizer that would produce overlapping bigrams for CJK?
>

Hi Tom, Let's open JIRA issue for this, we can add it.
The gist of it, is that ICUTokenizer sets a ScriptAttribute (an
integer) per token indicating its writing system.
So its easy to make an efficient filter that basically only "shingles"
on this attribute.

The reason there isnt one, is because I'd really like for us to
eventually somehow solve this with
https://issues.apache.org/jira/browse/LUCENE-2470

But for now, i think it would be good to be practical and add the
explicit filter (we can just mark the api experimental, hoping we will
make it more general with 2470) so people can easily get good out of
box performance in situations like yours.

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

Reply via email to