Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D0156200CAD for ; Sat, 13 May 2017 02:35:47 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id CEDC1160BCB; Sat, 13 May 2017 00:35:47 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0DC19160BD1 for ; Sat, 13 May 2017 02:35:46 +0200 (CEST) Received: (qmail 58033 invoked by uid 500); 13 May 2017 00:35:46 -0000 Mailing-List: contact commits-help@geode.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.apache.org Delivered-To: mailing list commits@geode.apache.org Received: (qmail 56899 invoked by uid 99); 13 May 2017 00:35:44 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 13 May 2017 00:35:44 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 25FD6F17F6; Sat, 13 May 2017 00:35:44 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jasonhuynh@apache.org To: commits@geode.apache.org Date: Sat, 13 May 2017 00:36:00 -0000 Message-Id: <34bea0b3271847459e219da65d1b8c94@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [18/26] geode git commit: GEODE-11: add unit test for soundex analyzer archived-at: Sat, 13 May 2017 00:35:48 -0000 GEODE-11: add unit test for soundex analyzer Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/c8f337c0 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/c8f337c0 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/c8f337c0 Branch: refs/heads/feature/GEODE-2900 Commit: c8f337c0857686eab64236245f642a1e028e0ca4 Parents: ab7e51f Author: zhouxh Authored: Thu May 11 11:33:12 2017 -0700 Committer: zhouxh Committed: Thu May 11 11:33:34 2017 -0700 ---------------------------------------------------------------------- geode-lucene/build.gradle | 2 ++ .../lucene/LuceneQueriesIntegrationTest.java | 32 ++++++++++++++++++++ gradle/dependency-versions.properties | 1 + 3 files changed, 35 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/c8f337c0/geode-lucene/build.gradle ---------------------------------------------------------------------- diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle index 8545200..74de7a6 100644 --- a/geode-lucene/build.gradle +++ b/geode-lucene/build.gradle @@ -32,6 +32,8 @@ dependencies { testCompile 'org.apache.lucene:lucene-test-framework:' + project.'lucene.version' testCompile 'org.apache.lucene:lucene-codecs:' + project.'lucene.version' testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version' + testCompile 'org.apache.lucene:lucene-analyzers-phonetic:' + project.'lucene.version' + testCompile 'commons-codec:commons-codec:' + project.'codec.version' testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version' testCompile files(project(':geode-core').sourceSets.test.output) } http://git-wip-us.apache.org/repos/asf/geode/blob/c8f337c0/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesIntegrationTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesIntegrationTest.java index 9db0a5e..685d61c 100644 --- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesIntegrationTest.java +++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesIntegrationTest.java @@ -34,7 +34,9 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.core.KeywordAnalyzer; import org.apache.lucene.analysis.core.LowerCaseFilter; +import org.apache.lucene.analysis.phonetic.DoubleMetaphoneFilter; import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.analysis.standard.StandardTokenizer; import org.apache.lucene.analysis.util.CharTokenizer; import org.junit.Ignore; import org.junit.Rule; @@ -455,6 +457,27 @@ public class LuceneQueriesIntegrationTest extends LuceneIntegrationTest { } + @Test() + public void soundexQueryReturnExpectedTruePositiveAndFalsePositive() throws Exception { + Map fields = new HashMap(); + fields.put("field1", new DoubleMetaphoneAnalyzer()); + fields.put("field2", null); + luceneService.createIndexFactory().setFields(fields).create(INDEX_NAME, REGION_NAME); + Region region = cache.createRegionFactory(RegionShortcut.PARTITION).create(REGION_NAME); + final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME); + + region.put("A", new TestObject("Stefan", "soundex")); + region.put("B", new TestObject("Steph", "soundex")); + region.put("C", new TestObject("Stephen", "soundex")); + region.put("D", new TestObject("Steve", "soundex")); + region.put("E", new TestObject("Steven", "soundex")); + region.put("F", new TestObject("Stove", "soundex")); + region.put("G", new TestObject("Stuffin", "soundex")); + luceneService.waitUntilFlushed(INDEX_NAME, REGION_NAME, 60000, TimeUnit.MILLISECONDS); + + verifyQuery("field1:Stephen", DEFAULT_FIELD, "A", "C", "E", "G"); + } + private PdxInstance insertAJson(Region region, String key) { String jsonCustomer = "{" + "\"name\": \"" + key + "\"," + "\"lastName\": \"Smith\"," + " \"age\": 25," + "\"address\":" + "{" + "\"streetAddress\": \"21 2nd Street\"," @@ -507,4 +530,13 @@ public class LuceneQueriesIntegrationTest extends LuceneIntegrationTest { return new TokenStreamComponents(tokenizer, filter); } } + + private static class DoubleMetaphoneAnalyzer extends Analyzer { + @Override + protected TokenStreamComponents createComponents(final String field) { + Tokenizer tokenizer = new StandardTokenizer(); + TokenStream stream = new DoubleMetaphoneFilter(tokenizer, 6, false); + return new TokenStreamComponents(tokenizer, stream); + } + } } http://git-wip-us.apache.org/repos/asf/geode/blob/c8f337c0/gradle/dependency-versions.properties ---------------------------------------------------------------------- diff --git a/gradle/dependency-versions.properties b/gradle/dependency-versions.properties index a9e3fdf..98deadc 100644 --- a/gradle/dependency-versions.properties +++ b/gradle/dependency-versions.properties @@ -65,6 +65,7 @@ junit-quickcheck.version = 0.7 JUnitParams.version = 1.0.6 log4j.version = 2.7 lucene.version = 6.4.1 +codec.version = 1.10 mockito-core.version = 1.10.19 mockrunner.version = 1.1.2 mortbay-jetty-servlet-api.version=3.0.20100224