diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-09-29 12:35:56 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-09-29 12:35:56 +0000 |
commit | e8cde65c0c35068738fa17dccc6eb7d8a97099ec (patch) | |
tree | b32ef64e8500e9c9e695052d2a2c265472fb8168 /vsm | |
parent | ebe26d1fd87888d032dfb242b60cb405063b278c (diff) |
- Add testcase for german umlaut.
- Remove requirement that term and field must have equal length. As length depends on
encoding we do not know ucs4 length until after processing.
Diffstat (limited to 'vsm')
-rw-r--r-- | vsm/src/tests/searcher/searcher.cpp | 12 | ||||
-rw-r--r-- | vsm/src/vespa/vsm/searcher/utf8stringfieldsearcherbase.cpp | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/vsm/src/tests/searcher/searcher.cpp b/vsm/src/tests/searcher/searcher.cpp index dbf458a0c32..981ec94c0b3 100644 --- a/vsm/src/tests/searcher/searcher.cpp +++ b/vsm/src/tests/searcher/searcher.cpp @@ -545,10 +545,14 @@ SearcherTest::testUTF8ExactStringFieldSearcher() { UTF8ExactStringFieldSearcher fs(0); // regular - assertString(fs, "vespa", "vespa", Hits().add(0)); - assertString(fs, "vespa", "vespa vespa", Hits()); - assertString(fs, "vesp", "vespa", Hits()); - assertString(fs, "vesp*", "vespa", Hits().add(0)); + TEST_DO(assertString(fs, "vespa", "vespa", Hits().add(0))); + TEST_DO(assertString(fs, "vespar", "vespa", Hits())); + TEST_DO(assertString(fs, "vespa", "vespar", Hits())); + TEST_DO(assertString(fs, "vespa", "vespa vespa", Hits())); + TEST_DO(assertString(fs, "vesp", "vespa", Hits())); + TEST_DO(assertString(fs, "vesp*", "vespa", Hits().add(0))); + TEST_DO(assertString(fs, "hutte", "hutte", Hits().add(0))); + TEST_DO(assertString(fs, "hütte", "hütte", Hits().add(0))); } void diff --git a/vsm/src/vespa/vsm/searcher/utf8stringfieldsearcherbase.cpp b/vsm/src/vespa/vsm/searcher/utf8stringfieldsearcherbase.cpp index 3cba7587598..73d0c4faac6 100644 --- a/vsm/src/vespa/vsm/searcher/utf8stringfieldsearcherbase.cpp +++ b/vsm/src/vespa/vsm/searcher/utf8stringfieldsearcherbase.cpp @@ -139,7 +139,7 @@ UTF8StringFieldSearcherBase::matchTermExact(const FieldRef & f, QueryTerm & qt) termsize_t tsz = qt.term(term); const cmptype_t * eterm = term+tsz; const byte * e = n + f.size(); - if ((tsz == f.size()) || ((tsz < f.size()) && qt.isPrefix())) { + if (tsz <= f.size()) { bool equal(true); for (; equal && (n < e) && (term < eterm); term++) { if (*term < 0x80) { |