[
https://issues.apache.org/jira/browse/LUCENE-8325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16483610#comment-16483610
]
Jim Ferenczi commented on LUCENE-8325:
--------------------------------------
Thanks [~chengpohi], the patch looks good to me, the dictionary is for
simplified chinese characters only but I agree that the tokenizer should not
split surrogate pairs into multiple tokens. I don't know the smartcn analyzer
well enough though so I'd like someone else to double check the patch, maybe
[~rcmuir] ?
> smartcn analyzer can't handle SURROGATE char
> --------------------------------------------
>
> Key: LUCENE-8325
> URL: https://issues.apache.org/jira/browse/LUCENE-8325
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: chengpohi
> Priority: Minor
> Labels: newbie, patch
> Attachments: handle-surrogate-char-for-smartcn.patch
>
>
> This issue is from [https://github.com/elastic/elasticsearch/issues/30739]
> smartcn analyzer can't handle SURROGATE char, Example:
>
>
> {code:java}
> Analyzer ca = new SmartChineseAnalyzer();
> String sentence = "\uD862\uDE0F"; // 𨨏 a surrogate char
> TokenStream tokenStream = ca.tokenStream("", sentence);
> CharTermAttribute charTermAttribute =
> tokenStream.addAttribute(CharTermAttribute.class);
> tokenStream.reset();
> while (tokenStream.incrementToken()) {
> String term = charTermAttribute.toString();
> System.out.println(term);
> }
> {code}
>
> In the above code snippet will output:
>
> {code:java}
> ?
> ?
> {code}
>
> and I have created a *PATCH* to try to fix this, please help review(since
> *smartcn* only support *GBK* char, so it's only just handle it as a *single
> char*).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]