summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorreger <reger18@arcor.de>2015-03-16 02:03:40 +0100
committerreger <reger18@arcor.de>2015-03-16 02:03:40 +0100
commitf63fff90085fc5ff144deb54891c69d5ef5bf146 (patch)
tree1bd96beda9dea0ffa888a2499166b1985584639a
parentb2412646324a5c74503171246a0b4042e59ff432 (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.java6
-rw-r--r--test/net/yacy/search/snippet/TextSnippetTest.java12
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"));
}
}