Hi Colm,

Thanks for bringing the issue up.  The behavior you mention is expected, though 
- see below for details.

In the future, you should use the java-user@l.a.o mailing list for questions 
about Lucene *usage* -- this mailing list (dev@l.a.o), by contrast, is intended 
for development discussions.

<rant>
FYI, Nabble.com stripped out all of your code and examples before sending your 
message to the mailing list.  My suggestion: stop using Nabble.  (I've 
described this problem to their support people a couple of times, and they 
apparently just don't care, since it still persists, years later.)
</rant>

StandardTokenizer, the tokenizer included in StandardAnalyzer, implements the 
Word Break rules from Unicode 6.0.0 UAX#29 
<http://www.unicode.org/reports/tr29/tr29-17.html>.  These rules are 
international in nature.

The UAX#29 Word Break rules that prohibit breaking around commas when 
surrounded by digits are:

        Do not break within sequences, such as "3.2" or "3,456.789".

        WB11.   Numeric (MidNum | MidNumLet) × Numeric
        WB12.   Numeric × (MidNum | MidNumLet) Numeric

(In these rules, "×" means "do not break".)

>From the table "Word_Break property values" at 
><http://www.unicode.org/reports/tr29/tr29-17.html#Default_Word_Boundaries>, 
>you can see that the set of characters that are assigned the Word_Break:MidNum 
>property value is a superset of the characters assigned the 
>Line_Break:Infix_Numeric property value, which includes the comma character.  
>You can see the full set of characters that are assigned the 
>Line_Break:Infix_Number property value here: 
><http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3ALine_Break+%3D+Infix_Numeric%3A%5D>
> (note that because this utility refers to Unicode 6.1.0, the results may 
>differ slightly from Lucene v3.5.0 StandardTokenizer, since it uses Unicode 
>6.0.0).

Steve

-----Original Message-----
From: colm.mchugh [mailto:colm.mch...@mapflow.com] 
Sent: Thursday, March 22, 2012 9:23 AM
To: dev@lucene.apache.org
Subject: Case where StandardAnalyzer doesn't remove punctuation

I'm using Lucene to search address data, and came across an interesting case 
where StandardAnalyzer appears not to remove punctuation (a comma). To 
illustrate, the following code snippet uses StandardAnalyzer to analyze an 
address, printing out each analyzed token. 
 The output of the code snippet is: 
If the code is altered slightly so the String text is initialized as
follows:
 (there's a space between the first comma and the building number) then the 
output is as follows:I would expect the output to be the same in both cases 
based on my understanding. Is this a known issue? Or am I off on my 
understanding? It's not a biggie. It caught my attention because I have a unit 
test that asserts token text is all lower case or alphanumeric. It can be 
easily got around, but I thought it worth posting about.

--
View this message in context: 
http://lucene.472066.n3.nabble.com/Case-where-StandardAnalyzer-doesn-t-remove-punctuation-tp3848460p3848460.html
Sent from the Lucene - Java Developer mailing list archive at Nabble.com.

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


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

Reply via email to