r1299 - in trunk/wikitty-solr/src: main/java/org/nuiton/wikitty/storage/solr test/java/org/nuiton/wikitty/storage/solr
Author: bpoussin Date: 2012-01-07 17:50:21 +0100 (Sat, 07 Jan 2012) New Revision: 1299 Url: http://nuiton.org/repositories/revision/wikitty/1299 Log: petit hack pour que le like/unlike/keyword fonctionne comme on le souhaite Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java 2012-01-07 16:23:47 UTC (rev 1298) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java 2012-01-07 16:50:21 UTC (rev 1299) @@ -342,7 +342,17 @@ @Override public boolean visitEnter(Keyword o) { - solrQuery += evalConditionValue(o.getValue()); + String value = evalConditionValue(o.getValue()); + // TODO poussin 20120107 impossible de comprendre pourquoi il faut force + // la chaine en lower case, ca devrait etre le role de solr/lucene via + // la description du schema de mettre la chaine dans la bonne forme + // pour la recheche en fonction du type du champs souhaite (ici fulltext) + // tant que ca marche pas on force a la main + value = value.toLowerCase(); + + // pour keyword on ajout automatiquement les *, sinon il faut faire un like + value = "*" + value + "*"; + solrQuery += value; return false; } @@ -383,7 +393,15 @@ element2solr += WikittySolrConstant.SUFFIX_STRING_FULLTEXT; } - solrQuery += element2solr + ":" + evalConditionValue(o.getValue()); + String value = evalConditionValue(o.getValue()); + // TODO poussin 20120107 impossible de comprendre pourquoi il faut force + // la chaine en lower case, ca devrait etre le role de solr/lucene via + // la description du schema de mettre la chaine dans la bonne forme + // pour la recheche en fonction du type du champs souhaite (ici fulltext) + // tant que ca marche pas on force a la main + value = value.toLowerCase(); + + solrQuery += element2solr + ":" + value; return false; } @@ -400,7 +418,15 @@ element2solr += WikittySolrConstant.SUFFIX_STRING_FULLTEXT; } - solrQuery += "-" + element2solr + ":" + evalConditionValue(o.getValue()); + String value = evalConditionValue(o.getValue()); + // TODO poussin 20120107 impossible de comprendre pourquoi il faut force + // la chaine en lower case, ca devrait etre le role de solr/lucene via + // la description du schema de mettre la chaine dans la bonne forme + // pour la recheche en fonction du type du champs souhaite (ici fulltext) + // tant que ca marche pas on force a la main + value = value.toLowerCase(); + + solrQuery += "-" + element2solr + ":" + value; return false; } Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java 2012-01-07 16:23:47 UTC (rev 1298) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolrForQueryTest.java 2012-01-07 16:50:21 UTC (rev 1299) @@ -258,17 +258,46 @@ { WikittyQuery query = new WikittyQueryMaker() - .like(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "Group*") + .eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "G*") .end(); WikittyQueryResult<String> result = client.findAllByQuery(query); System.out.println("testEq" + result.getAll()); - // FIXME test fail :(. But solr request look like good - // WikittyGroup.name_s_t:Group* -// Assert.assertEquals(2, result.size()); + Assert.assertEquals(2, result.size()); } + { + WikittyQuery query = new WikittyQueryMaker() + .like(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "*oup*") + .end(); + + WikittyQueryResult<String> result = client.findAllByQuery(query); + + System.out.println("testLike" + result); + Assert.assertEquals(2, result.size()); + } + { + WikittyQuery query = new WikittyQueryMaker() + .like("*", "Grou*") + .end(); + + WikittyQueryResult<String> result = client.findAllByQuery(query); + + System.out.println("testLike" + result); + Assert.assertEquals(2, result.size()); + } + { + WikittyQuery query = new WikittyQueryMaker() + .keyword("Gro") + .end(); + + WikittyQueryResult<String> result = client.findAllByQuery(query); + + System.out.println("testKeyword:" + result); + Assert.assertEquals(2, result.size()); + } + } @Test
participants (1)
-
bpoussin@users.nuiton.org