From: Dennis Schafroth Date: Wed, 11 Sep 2013 12:17:41 +0000 (+0200) Subject: Merge branch 'yaz-621-optimized' X-Git-Tag: v4.2.66~1 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=3ae80066499b6ec541c8f474654668f65f0f1c3c;hp=30257fdfae108b95848ef0ccbc4cac09466a60d8 Merge branch 'yaz-621-optimized' --- diff --git a/src/rpn2solr.c b/src/rpn2solr.c index c72b11a..5047d4b 100644 --- a/src/rpn2solr.c +++ b/src/rpn2solr.c @@ -69,15 +69,15 @@ static const char *lookup_relation_index_from_attr(Z_AttributeList *attributes) { /* Unsure on whether this is the relation attribute constants? */ case Z_ProximityOperator_Prox_lessThan: - return 0; + return "<"; case Z_ProximityOperator_Prox_lessThanOrEqual: - return 0; + return "le"; case Z_ProximityOperator_Prox_equal: return ":"; case Z_ProximityOperator_Prox_greaterThanOrEqual: - return 0; + return "ge"; case Z_ProximityOperator_Prox_greaterThan: - return 0; + return ">"; case Z_ProximityOperator_Prox_notEqual: return 0; case 100: diff --git a/test/test_rpn2solr.c b/test/test_rpn2solr.c index c2188d8..3589e7f 100644 --- a/test/test_rpn2solr.c +++ b/test/test_rpn2solr.c @@ -37,9 +37,9 @@ static int compare(solr_transform_t ct, const char *pqf, const char *solr) { yaz_log(YLOG_LOG, "%s -> %s", pqf, wrbuf_cstr(w)); if (solr && !strcmp(wrbuf_cstr(w), solr)) - { ret = 1; - } + else + yaz_log(YLOG_LOG, "Exp: %s", solr); } } wrbuf_destroy(w); @@ -91,6 +91,24 @@ static void tst1(void) YAZ_CHECK(compare(ct, "@attr 5=104 \\\"\\\\\\\\\\\"", "\\\"" "\\\\" "\\\"")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=1 1980", "date:[* TO 1980}")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=2 1980", "date:[* TO 1980]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=3 1980", "date:1980")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=4 1980", "date:[1980 TO *]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=5 1980", "date:{1980 TO *]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[1990 TO 234]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 345 @attr 1=date @attr 2=4 234", "date:[234 TO 345]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=titl @attr 2=2 1990", "date:{234 TO *] AND titl:[* TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=date @attr 2=2 1990", "date:{234 TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=date @attr 2=1 1990", "date:{234 TO 1990}")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO 1990]")); + YAZ_CHECK(compare(ct, "@or @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO *] OR date:[* TO 1990]")); + YAZ_CHECK(compare(ct, "@or @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[* TO 234] OR date:[1990 TO *]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=1 1980", "date:[* TO 1980}")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=2 1980", "date:[* TO 1980]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[1990 TO 234]")); + solr_transform_close(ct); }