X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fsession.c;h=77d9ee82f08e7ec5e16958e5dd573843110bc2c4;hb=8cb5fdac44498271111dce8145623bded04cc27f;hp=880fc0cbe6dc5e09b353abfb76ee8e2ebb07a4db;hpb=92e1dfef4786ead126c15f16c3452b06d22c50aa;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 880fc0c..77d9ee8 100644 --- a/src/session.c +++ b/src/session.c @@ -1240,7 +1240,7 @@ struct record_cluster *show_single_start(struct session *se, const char *id, session_enter(se, "show_single_start"); *prev_r = 0; *next_r = 0; - reclist_limit(se->reclist, se); + reclist_limit(se->reclist, se, 1); reclist_enter(se->reclist); while ((r = reclist_read_record(se->reclist))) @@ -1314,7 +1314,7 @@ struct record_cluster **show_range_start(struct session *se, *sumhits = 0; *approx_hits = 0; *total = 0; - reclist_limit(se->reclist, se); + reclist_limit(se->reclist, se, 0); if (se->relevance) { for (spp = sp; spp; spp = spp->next) @@ -1467,6 +1467,7 @@ static struct record_metadata *record_metadata_init( rec_md->data.text.disp = p; rec_md->data.text.sort = 0; + rec_md->data.text.snippet = 0; } else if (type == Metadata_type_year || type == Metadata_type_date) { @@ -1956,6 +1957,18 @@ static int ingest_to_cluster(struct client *cl, "for element '%s'", value, type); continue; } + + if (ser_md->type == Metadata_type_generic) + { + WRBUF w = wrbuf_alloc(); + if (relevance_snippet(se->relevance, + (char*) value, ser_md->name, w)) + rec_md->data.text.snippet = nmem_strdup(se->nmem, + wrbuf_cstr(w)); + wrbuf_destroy(w); + } + + wheretoput = &record->metadata[md_field_id]; while (*wheretoput) wheretoput = &(*wheretoput)->next; @@ -2183,7 +2196,6 @@ static int ingest_to_cluster(struct client *cl, relevance_countwords(se->relevance, cluster, (char *) value, rank, ser_md->name); } - // construct facets ... unless the client already has reported them if (ser_md->termlist && !client_has_facet(cl, (char *) type)) {