diff options
| author | reger <reger18@arcor.de> | 2015-03-16 02:03:40 +0100 |
|---|---|---|
| committer | reger <reger18@arcor.de> | 2015-03-16 02:03:40 +0100 |
| commit | f63fff90085fc5ff144deb54891c69d5ef5bf146 (patch) | |
| tree | 1bd96beda9dea0ffa888a2499166b1985584639a | |
| parent | b2412646324a5c74503171246a0b4042e59ff432 (diff) | |
fix snippet containig number with comma as desmo point http://mantis.tokeek.de/view.php?id=344
to keep it as one word (by altering the split regex)
- added sniipet test case with number
- regex for word split to match multiple splitcars
| -rw-r--r-- | source/net/yacy/search/snippet/TextSnippet.java | 6 | ||||
| -rw-r--r-- | test/net/yacy/search/snippet/TextSnippetTest.java | 12 |
2 files changed, 16 insertions, 2 deletions
diff --git a/source/net/yacy/search/snippet/TextSnippet.java b/source/net/yacy/search/snippet/TextSnippet.java index d864d7c21..b10fbd44b 100644 --- a/source/net/yacy/search/snippet/TextSnippet.java +++ b/source/net/yacy/search/snippet/TextSnippet.java @@ -75,9 +75,11 @@ public class TextSnippet implements Comparable<TextSnippet>, Comparator<TextSnip Pattern.compile(".+[^\\p{L}\\p{N}]\\Z");
/**
* <code>\\A[\\p{L}\\p{N}]+[^\\p{L}\\p{N}].+\\Z</code>
+ * updated to <code>\\A([\\p{L}\\p{N}]+[^\\p{L}\\p{N}].+)([\\p{N}]+[.,][\\p{N}])+\\Z</code>
+ * to detect words with none alphanumeric chars (1) allow comma/dot surrounded by number (2)
*/
private static final Pattern p3 =
- Pattern.compile("\\A[\\p{L}\\p{N}]+[^\\p{L}\\p{N}].+\\Z");
+ Pattern.compile("\\A([\\p{L}\\p{N}]+[^\\p{L}\\p{N}].+)([\\p{N}]+[.,][\\p{N}])+\\Z");
/**
* <code>[^\\p{L}\\p{N}]</code>
*/
@@ -390,7 +392,7 @@ public class TextSnippet implements Comparable<TextSnippet>, Comparator<TextSnip return this.resultStatus;
}
- private static final Pattern SPLIT_PATTERN = Pattern.compile(" |-");
+ private static final Pattern SPLIT_PATTERN = Pattern.compile("[ |-]+");
/**
* Marks all words in current line which have the same
diff --git a/test/net/yacy/search/snippet/TextSnippetTest.java b/test/net/yacy/search/snippet/TextSnippetTest.java index bd92903c6..a038b08fb 100644 --- a/test/net/yacy/search/snippet/TextSnippetTest.java +++ b/test/net/yacy/search/snippet/TextSnippetTest.java @@ -152,5 +152,17 @@ public class TextSnippetTest { System.out.println("testDescriptionline: snippet=" + sniptxt);
assertFalse ("HTML code not allowed in snippet text",sniptxt.contains("<pre>")); // display text not to include unwanted html
assertTrue ("Query word not marked", sniptxt.contains("<b>test</b>")); // query word to be marked
+
+ // test text with some numbers (english/german format)
+ rawtestline = "Test Version 1.83 calculates pi to 3,14 always";
+ ts = new TextSnippet(
+ url.hash(),
+ rawtestline,
+ false, // isMarked,
+ TextSnippet.ResultClass.SOURCE_METADATA, "");
+ sniptxt = ts.descriptionline(qg);
+ System.out.println("testDescriptionline: (with numbers) snippet="+sniptxt);
+ assertTrue ("number (.) broken up",sniptxt.contains("1.83"));
+ assertTrue ("number (,) broken up",sniptxt.contains("3,14"));
}
}
|
