@@ -40,7 +40,7 @@ public void testSolrGENERIC() {
4040 // concat is true, ruleType is EXACT
4141 args = new TreeMap <String , String >();
4242 args .put ("nameType" , "GENERIC" );
43- assertEquals (encode (args , true , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
43+ assertEquals (encode (args , true , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
4444 args .put ("ruleType" , "EXACT" );
4545 assertEquals (encode (args , true , "Angelo" ), "anZelo|andZelo|angelo|anhelo|anjelo|anxelo" );
4646 assertEquals (encode (args , true , "D'Angelo" ), "(anZelo|andZelo|angelo|anhelo|anjelo|anxelo)-(danZelo|dandZelo|dangelo|danhelo|danjelo|danxelo)" );
@@ -50,7 +50,7 @@ public void testSolrGENERIC() {
5050
5151 // concat is false, ruleType is EXACT
5252 args = new TreeMap <String , String >();
53- assertEquals (encode (args , false , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
53+ assertEquals (encode (args , false , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
5454 args .put ("ruleType" , "EXACT" );
5555 assertEquals (encode (args , false , "Angelo" ), "anZelo|andZelo|angelo|anhelo|anjelo|anxelo" );
5656 assertEquals (encode (args , false , "D'Angelo" ), "(anZelo|andZelo|angelo|anhelo|anjelo|anxelo)-(danZelo|dandZelo|dangelo|danhelo|danjelo|danxelo)" );
@@ -60,20 +60,20 @@ public void testSolrGENERIC() {
6060
6161 // concat is true, ruleType is APPROX
6262 args = new TreeMap <String , String >();
63- assertEquals (encode (args , true , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
63+ assertEquals (encode (args , true , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
6464 args .put ("ruleType" , "APPROX" );
65- assertEquals (encode (args , true , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
66- assertEquals (encode (args , true , "D'Angelo" ), "(agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo)-(dagilo|dangilo|daniilo|danilo|danxilo|danzilo|dogilo|dongilo|doniilo|donilo|donxilo|donzilo)" );
65+ assertEquals (encode (args , true , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
66+ assertEquals (encode (args , true , "D'Angelo" ), "(YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo| ongilo|oniilo|onilo|onxilo|onzilo)-(dYngYlo|dYngilo| dagilo|dangYlo| dangilo|daniilo|danilo|danxilo|danzilo|dogilo|dongYlo |dongilo|doniilo|donilo|donxilo|donzilo)" );
6767 args .put ("languageSet" , "italian,greek,spanish" );
6868 assertEquals (encode (args , true , "Angelo" ), "angilo|anxilo|anzilo|ongilo|onxilo|onzilo" );
6969 assertEquals (encode (args , true , "1234" ), "" );
7070
7171 // concat is false, ruleType is APPROX
7272 args = new TreeMap <String , String >();
73- assertEquals (encode (args , false , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
73+ assertEquals (encode (args , false , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
7474 args .put ("ruleType" , "APPROX" );
75- assertEquals (encode (args , false , "Angelo" ), "agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo" );
76- assertEquals (encode (args , false , "D'Angelo" ), "(agilo|angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongilo|oniilo|onilo|onxilo|onzilo)-(dagilo|dangilo|daniilo|danilo|danxilo|danzilo|dogilo|dongilo|doniilo|donilo|donxilo|donzilo)" );
75+ assertEquals (encode (args , false , "Angelo" ), "YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo |ongilo|oniilo|onilo|onxilo|onzilo" );
76+ assertEquals (encode (args , false , "D'Angelo" ), "(YngYlo|Yngilo| agilo|angYlo| angilo|aniilo|anilo|anxilo|anzilo|ogilo|ongYlo| ongilo|oniilo|onilo|onxilo|onzilo)-(dYngYlo|dYngilo| dagilo|dangYlo| dangilo|daniilo|danilo|danxilo|danzilo|dogilo|dongYlo |dongilo|doniilo|donilo|donxilo|donzilo)" );
7777 args .put ("languageSet" , "italian,greek,spanish" );
7878 assertEquals (encode (args , false , "Angelo" ), "angilo|anxilo|anzilo|ongilo|onxilo|onzilo" );
7979 assertEquals (encode (args , false , "1234" ), "" );
@@ -177,6 +177,17 @@ public void testSolrSEPHARDIC() {
177177 assertEquals (encode (args , false , "1234" ), "" );
178178 }
179179
180+ @ Test
181+ public void testCompatibilityWithOriginalVersion () {
182+ // see CODEC-187
183+ // comparison: http://stevemorse.org/census/soundex.html
184+
185+ Map <String , String > args = new TreeMap <String , String >();
186+ args .put ("nameType" , "GENERIC" );
187+ args .put ("ruleType" , "APPROX" );
188+ assertEquals (encode (args , true , "abram" ), "Ybram|Ybrom|abram|abran|abrom|abron|avram|avrom|obram|obran|obrom|obron|ovram|ovrom" );
189+ }
190+
180191 /**
181192 * This code is similar in style to code found in Solr:
182193 * solr/core/src/java/org/apache/solr/analysis/BeiderMorseFilterFactory.java
0 commit comments