[ 
https://issues.apache.org/jira/browse/SOLR-822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Koji Sekiguchi updated SOLR-822:
--------------------------------

    Attachment: SOLR-822.patch

bq. I think I found a bug... the correctPosition() returns incorrect position.  
I'm working on that...

Attached patch fixes the problem. It also includes:

- some unit tests
- Javadoc for CharStream, CharReader and CharFilter
- rename correctPosition() to correctOffset() and make it final in CharFilter:

{code:java}
public final int correctOffset(int currentOff) {
  return input.correctOffset( correctPosition( currentOff ) );
}

protected int correctPosition( int pos ){
  return pos;
}
{code}

then correctOffset() calls correctPosition(). correctPosition() can be override 
to correct position in subclass of CharFilter.
- rename MappingCJKTokenizer to CharStreamAwareCJKTokenizer

TODO:
# support \uNNNN style in mapping.txt
# add StopCharFilter

> CharFilter - normalize characters before tokenizer
> --------------------------------------------------
>
>                 Key: SOLR-822
>                 URL: https://issues.apache.org/jira/browse/SOLR-822
>             Project: Solr
>          Issue Type: New Feature
>          Components: Analysis
>            Reporter: Koji Sekiguchi
>            Priority: Minor
>         Attachments: character-normalization.JPG, sample_mapping_ja.txt, 
> SOLR-822.patch, SOLR-822.patch, SOLR-822.patch
>
>
> A new plugin which can be placed in front of <tokenizer/>.
> {code:xml}
> <fieldType name="textCharNorm" class="solr.TextField" 
> positionIncrementGap="100" >
>   <analyzer>
>     <charFilter class="solr.MappingCharFilterFactory" 
> mapping="mapping_ja.txt" />
>     <tokenizer class="solr.MappingCJKTokenizerFactory"/>
>     <filter class="solr.StopFilterFactory" ignoreCase="true" 
> words="stopwords.txt"/>
>     <filter class="solr.LowerCaseFilterFactory"/>
>   </analyzer>
> </fieldType>
> {code}
> <charFilter/> can be multiple (chained). I'll post a JPEG file to show 
> character normalization sample soon.
> MOTIVATION:
> In Japan, there are two types of tokenizers -- N-gram (CJKTokenizer) and 
> Morphological Analyzer.
> When we use morphological analyzer, because the analyzer uses Japanese 
> dictionary to detect terms,
> we need to normalize characters before tokenization.
> I'll post a patch soon, too.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to