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

Uwe Schindler commented on LUCENE-6874:
---------------------------------------

One thing to make it full flexible in Lucene Trunk (Java 8 only). I know this 
would not help Solr users that want to define the Tokenizer in a config file, 
but for real Lucene users the Java 8-like way would be the following static 
method on CharTokenizer:

{code:java}
public static CharTokenizer fromPredicate(java.util.function.IntPredicate 
predicate)
{code}

This would allow to define a new CharTokenizer with a single line statement 
using any predicate:

{code:java}
// long variant with lambda:
Tokenizer tok = CharTokenizer.fromPredicate(c -> !UCharacter.isUWhiteSpace(c));

// method reference:
Tokenizer tok = CharTokenizer.fromPredicate( 
(UCharacter::isUWhiteSpace).negate() );

// method reference to custom function:
private boolean myTestFunction(int c) {
 return (cracy condition);
}

Tokenizer tok = CharTokenizer.fromPredicate(c -> this::myTestFunction);
{code}

I think we should do this in a separate issue in Lucene trunk for Java 8. This 
is really the way for which Java 8 Lambdas are made for. And its fast like 
hell, because its compiled to native bytecode so there is no call overhead.

> WhitespaceTokenizer should tokenize on NBSP
> -------------------------------------------
>
>                 Key: LUCENE-6874
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6874
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/analysis
>            Reporter: David Smiley
>            Priority: Minor
>         Attachments: LUCENE-6874.patch
>
>
> WhitespaceTokenizer uses [Character.isWhitespace 
> |http://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#isWhitespace-int-]
>  to decide what is whitespace.  Here's a pertinent excerpt:
> bq. It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or 
> PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', 
> '\u2007', '\u202F')
> Perhaps Character.isWhitespace should have been called 
> isLineBreakableWhitespace?
> I think WhitespaceTokenizer should tokenize on this.  I am aware it's easy to 
> work around but why leave this trap in by default?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to