[ https://issues.apache.org/jira/browse/LUCENE-2167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Muir updated LUCENE-2167: -------------------------------- Attachment: LUCENE-2167.patch ok here is a patch file. before applying it, you have to run these commands: {noformat} # original grammar -> ClassicTokenizerImpl svn move modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImplOrig.java modules/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.java svn move modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImplOrig.jflex modules/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.jflex # this one is not needed, this patch becomes the new grammar svn delete modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl31.java svn delete modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl31.jflex # expose the old tokenizer, not just via Version, but also as ClassicAnalyzer/Tokenizer/Filter svn copy modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardAnalyzer.java modules/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicAnalyzer.java svn copy modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java modules/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizer.java svn copy modules/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardFilter.java modules/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicFilter.java svn copy modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestStandardAnalyzer.java modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java # temporarily edit solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java (change the $Id hossman.... to just $Id$) # apply the patch. {noformat} if you want to iterate on the patch, make your changes and generate a patch with 'svn --no-diff-deleted'. some notes: * patch is against 4.0, but i think we can do this in 3.1. all the back compat is preserved, etc. we just gotta figure a few things out. all the tests pass though. * The patch is large mainly because of the DFA size. I have some concerns about this... the email/url stuff seems to be the culprit, as the UAX#29 generated class is only 12KB, about the same size as our existing standardtokenizer. * I gave backwards compat (you get the old behavior) with Version, but also setup ClassicAnalyzer/Tokenizer/Filter for those that want the...not so international-friendly old version, for its company Identification, etc. * I modified token types for icu to be more consistent with this. * StandardFilter is currently a no-op for the new grammar. In my opinion this is a place to implement the 'more sophisticated' logic that the standard mentions for certain scripts. We can use token types (IDEOGRAPHIC, SOUTHEAST_ASIAN) to drive this. This way the standardanalyzer is a reasonable tokenizer for most languages. So, not completely sure this is the best approach, but it is one... the patch is still rough around the edges but at least now we can iterate more easily on it. > Implement StandardTokenizer with the UAX#29 Standard > ---------------------------------------------------- > > Key: LUCENE-2167 > URL: https://issues.apache.org/jira/browse/LUCENE-2167 > Project: Lucene - Java > Issue Type: New Feature > Components: contrib/analyzers > Affects Versions: 3.1 > Reporter: Shyamal Prasad > Assignee: Robert Muir > Priority: Minor > Attachments: LUCENE-2167-jflex-tld-macro-gen.patch, > LUCENE-2167-jflex-tld-macro-gen.patch, LUCENE-2167-jflex-tld-macro-gen.patch, > LUCENE-2167-lucene-buildhelper-maven-plugin.patch, > LUCENE-2167.benchmark.patch, LUCENE-2167.benchmark.patch, LUCENE-2167.patch, > LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, > LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, > LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, LUCENE-2167.patch, > standard.zip > > Original Estimate: 0.5h > Remaining Estimate: 0.5h > > It would be really nice for StandardTokenizer to adhere straight to the > standard as much as we can with jflex. Then its name would actually make > sense. > Such a transition would involve renaming the old StandardTokenizer to > EuropeanTokenizer, as its javadoc claims: > bq. This should be a good tokenizer for most European-language documents > The new StandardTokenizer could then say > bq. This should be a good tokenizer for most languages. > All the english/euro-centric stuff like the acronym/company/apostrophe stuff > can stay with that EuropeanTokenizer, and it could be used by the european > analyzers. -- 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org