Author: sletellier Date: 2011-05-05 17:26:00 +0200 (Thu, 05 May 2011) New Revision: 860 Url: http://nuiton.org/repositories/revision/wikitty/860 Log: - Fix like search with lower case - Add tests Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java trunk/wikitty-solr/src/main/resources/schema.xml Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java 2011-05-05 10:29:44 UTC (rev 859) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java 2011-05-05 15:26:00 UTC (rev 860) @@ -41,6 +41,7 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.operators.Like; import java.util.ArrayList; import java.util.List; @@ -96,7 +97,7 @@ //Create wikitty category named "Hardware" Wikitty category1 = new WikittyImpl(); category1.addExtension(category); - category1.setField(EXT_CATEGORY, CATEGORY_NAME, "Hardware"); + category1.setField(EXT_CATEGORY, CATEGORY_NAME, "HardWare"); proxy.store(category1); //Create wikitty category named "Wrong category" @@ -612,7 +613,7 @@ Search query = Search.query().bw("Product.price", "15", "25") .sw("Product.name", "Paint").associated("Product.category") - .eq("Category.name", "Hardware"); + .eq("Category.name", "HardWare"); Criteria associatedCriteria = query.criteria(); @@ -651,22 +652,22 @@ // FIXME sletellier 20110504 : Not yet implemented inMemorySearchTest, assuming assumeNotYetImplementedInMemory(); { - Criteria criteria = Search.query().eq("Category.name", "Hardware").criteria(); + Criteria criteria = Search.query().eq("Category.name", "HardWare").criteria(); PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); assertEquals(1, pagedResult.size()); } { - Criteria criteria = Search.query().eq("*.name", "Hardware").criteria(); + Criteria criteria = Search.query().eq("*.name", "HardWare").criteria(); PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); assertEquals(1, pagedResult.size()); } { - Criteria criteria = Search.query().eq("Category.name" + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + FieldType.TYPE.STRING, "Hardware").criteria(); + Criteria criteria = Search.query().eq("Category.name" + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + FieldType.TYPE.STRING, "HardWare").criteria(); PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); assertEquals(1, pagedResult.size()); } { - Criteria criteria = Search.query().eq("*.name" + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + FieldType.TYPE.STRING, "Hardware").criteria(); + Criteria criteria = Search.query().eq("*.name" + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + FieldType.TYPE.STRING, "HardWare").criteria(); PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); assertEquals(1, pagedResult.size()); } @@ -736,6 +737,40 @@ } } + @Test + public void testSearchAllLowerCase() { + { + Criteria criteria = Search.query().eq("Category.name", "HardWare").criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(1, pagedResult.size()); + } + { + Criteria criteria = Search.query().eq("Category.name", "hardware").criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(0, pagedResult.size()); + } + { + Criteria criteria = Search.query().like("Category.name", "HardWare", Like.SearchAs.ToLowerCase).criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(1, pagedResult.size()); + } + { + Criteria criteria = Search.query().like("Category.name", "hardware", Like.SearchAs.ToLowerCase).criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(1, pagedResult.size()); + } + { + Criteria criteria = Search.query().like("Category.name", "HardWare", Like.SearchAs.AsText).criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(1, pagedResult.size()); + } + { + Criteria criteria = Search.query().like("Category.name", "hardware", Like.SearchAs.AsText).criteria(); + PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); + assertEquals(1, pagedResult.size()); + } + } + @Test public void testComplexQueries() throws Exception { //TODO JC-07-04-2011 Write test Modified: trunk/wikitty-solr/src/main/resources/schema.xml =================================================================== --- trunk/wikitty-solr/src/main/resources/schema.xml 2011-05-05 10:29:44 UTC (rev 859) +++ trunk/wikitty-solr/src/main/resources/schema.xml 2011-05-05 15:26:00 UTC (rev 860) @@ -58,14 +58,14 @@ sortMissingLast="true" omitNorms="true"/> <!-- STRING type copy: type to string all text is lower cased --> - <fieldType name="string_lc" class="solr.StrField" + <fieldType name="string_lc" class="solr.TextField" compressThreshold="1000" sortMissingLast="true"> - <!--analyzer!--> <!-- no type to indicated that used it for both type: index and query --> - <!--<tokenizer class="solr.StandardTokenizerFactory"/> + <analyzer> <!-- no type to indicated that used it for both type: index and query --> + <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.ASCIIFoldingFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> - </analyzer>--> + </analyzer> </fieldType> <!-- STRING type copy