lucene-dev mailing list archives

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

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

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.

Comments:
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: https://issues.apache.org/jira/browse/LUCENE-1306
>             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(ts.next());
> {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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message