lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiroaki Kawai (JIRA)" <>
Subject [jira] Commented: (LUCENE-1306) CombinedNGramTokenFilter
Date Tue, 17 Jun 2008 02:57:45 GMT


Hiroaki Kawai commented on LUCENE-1306:

After thinking for a week, I think this idea is nice.

IMHO, this might be renamed to NGramTokenizer simply. A general n-gram tokenizer accepts a
sequence that has no gap in it. By the concept, TokenFilter accepts a tokien stream (gapped
sequence), and current NGramTokenFilter does not work well in that sense. CombinedNGramTokenFilter
filles the gap with prefix(^) and suffix($), and the token stream becomes a simple stream
again virtually, n-gram works nice agian.

1. prefix and suffix chars should be configurable. Because user must choose a char that is
not used in the terms.
2. prefix and suffix might be a white space. Because most of the users are not interested
in whitespace itself.
3. If you want to do a phrase query (for example, "This is"), we have to generate $^ token
in the gap to make the positions valid.
4. n-gram algorithm should be rewritten to make the positions valid. Please see LUCENE-1225

I think "^h" is OK, because prefix and suffix are the chars that was introduced as a workaround.

> CombinedNGramTokenFilter
> ------------------------
>                 Key: LUCENE-1306
>                 URL:
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: contrib/analyzers
>            Reporter: Karl Wettin
>            Assignee: Karl Wettin
>            Priority: Trivial
>         Attachments: LUCENE-1306.txt
> Alternative NGram filter that produce tokens with composite prefix and suffix markers.
> {code:java}
> ts = new WhitespaceTokenizer(new StringReader("hello"));
> ts = new CombinedNGramTokenFilter(ts, 2, 2);
> assertNext(ts, "^h");
> assertNext(ts, "he");
> assertNext(ts, "el");
> assertNext(ts, "ll");
> assertNext(ts, "lo");
> assertNext(ts, "o$");
> assertNull(;
> {code}

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:
For additional commands, e-mail:

View raw message