X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=6d7ab65177d26901d887755b60b5a4a3a48b4d8d;hb=074ed4b3116930e53285769df06bd2b785825d71;hp=9867d8cdf21b903d5715c64d151f46962babbcdb;hpb=b92f5f5d4bd3fb1cf21910047ba2f95ba9c9a4a8;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 9867d8c..6d7ab65 100644 --- a/src/session.c +++ b/src/session.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2013 Index Data + Copyright (C) Index Data Pazpar2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -1314,7 +1314,7 @@ struct record_cluster **show_range_start(struct session *se, if (se->relevance) { for (spp = sp; spp; spp = spp->next) - if (spp->type == Metadata_sortkey_relevance) + if (spp->type == Metadata_type_relevance) { relevance_prepare_read(se->relevance, se->reclist); break; @@ -1455,17 +1455,20 @@ static struct record_metadata *record_metadata_init( } *attrp = 0; - if (type == Metadata_type_generic) + switch (type) { - char *p = nmem_strdup(nmem, value); - - p = normalize7bit_generic(p, " ,/.:(["); - - rec_md->data.text.disp = p; + case Metadata_type_generic: + case Metadata_type_skiparticle: + if (strstr(value, "://")) /* looks like a URL */ + rec_md->data.text.disp = nmem_strdup(nmem, value); + else + rec_md->data.text.disp = + normalize7bit_generic(nmem_strdup(nmem, value), " ,/.:(["); rec_md->data.text.sort = 0; rec_md->data.text.snippet = 0; - } - else if (type == Metadata_type_year || type == Metadata_type_date) + break; + case Metadata_type_year: + case Metadata_type_date: { int first, last; int longdate = 0; @@ -1478,8 +1481,14 @@ static struct record_metadata *record_metadata_init( rec_md->data.number.min = first; rec_md->data.number.max = last; } - else + break; + case Metadata_type_float: + rec_md->data.fnumber = atof(value); + break; + case Metadata_type_relevance: + case Metadata_type_position: return 0; + } return rec_md; } @@ -2214,7 +2223,7 @@ static int ingest_to_cluster(struct client *cl, { const char *sort_str = 0; int skip_article = - ser_sk->type == Metadata_sortkey_skiparticle; + ser_sk->type == Metadata_type_skiparticle; if (!cluster->sortkeys[sk_field_id]) cluster->sortkeys[sk_field_id] =