-/* $Id: test_relevance.c,v 1.4 2007-04-19 19:42:30 marc Exp $
+/* $Id: test_relevance.c,v 1.9 2007-04-25 07:00:33 marc Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
02111-1307, USA.
*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <signal.h>
-#include <ctype.h>
-#include <assert.h>
-
#if HAVE_CONFIG_H
#include "cconfig.h"
#endif
#include <yaz/test.h>
-//#include "pazpar2.h"
#include "config.h"
#include "relevance.h"
-
+#include "record.h"
+#include "reclists.h"
void test_relevance(int argc, char **argv)
{"abe", "fisk", 0};
// {"ål", "økologi", "æble", 0};
- struct record_cluster *cluster = 0;
+ //struct record_cluster *cluster = 0;
struct conf_service *service = 0;
struct reclist *list = 0;
struct record *record = 0;
- const char *mergekey = "amergekey";
- int total = 0;
+ //const char *mergekey = "amergekey";
+ //int total = 0;
struct relevance *rel = 0;
+ //struct client *client = 0;
+
rel = relevance_create(nmem, queryterms, numrecs);
+ YAZ_CHECK(rel);
+
list = reclist_create(nmem, numrecs);
+ YAZ_CHECK(list);
+
+ service = conf_service_create(nmem, 4, 3);
+ YAZ_CHECK(service);
- service = conf_service_create(nmem, 4, 1);
- conf_service_add_metadata(nmem, service, 0, "title",
+ YAZ_CHECK(conf_service_add_metadata(nmem, service, 0, "title",
Metadata_type_generic, Metadata_merge_unique,
- 1, 1, 1, 0);
+ 1, 1, 1, 0));
- conf_service_add_metadata(nmem, service, 1, "author",
+ YAZ_CHECK(conf_service_add_metadata(nmem, service, 1, "author",
Metadata_type_generic, Metadata_merge_longest,
- 1, 1, 1, 0);
+ 1, 1, 1, 0));
- conf_service_add_metadata(nmem, service, 2, "isbn",
+ YAZ_CHECK(conf_service_add_metadata(nmem, service, 2, "isbn",
Metadata_type_number, Metadata_merge_no,
- 1, 1, 1, 0);
+ 1, 1, 1, 0));
- conf_service_add_metadata(nmem, service, 3, "year",
+ YAZ_CHECK(conf_service_add_metadata(nmem, service, 3, "year",
Metadata_type_year, Metadata_merge_range,
- 1, 1, 1, 0);
+ 1, 1, 1, 0));
+
+ YAZ_CHECK(conf_service_add_sortkey(nmem, service, 0, "relevance",
+ Metadata_sortkey_relevance));
+
+ YAZ_CHECK(conf_service_add_sortkey(nmem, service, 1, "title",
+ Metadata_sortkey_string));
+
+ YAZ_CHECK(conf_service_add_sortkey(nmem, service, 2, "year",
+ Metadata_sortkey_numeric));
+
+
+
+
+ // testing record things
+ record = record_create(nmem, 4, 3);
+ YAZ_CHECK(record);
+
+ // why on earth do we have a client dangeling from the record ??
+ // record->client = client;
+
+ char * bla = "blabla";
+ union data_types data_text;
+ data_text.text = bla;
+
+
+ union data_types data_num;
+ data_num.number.min = 2;
+ data_num.number.max = 5;
+
+ struct record_metadata * tmp_md = 0;
+ tmp_md = record_metadata_insert(nmem, &(record->metadata[0]), data_text);
+ YAZ_CHECK(tmp_md);
+ tmp_md = record_metadata_insert(nmem, &tmp_md, data_text);
+ YAZ_CHECK(tmp_md);
+
+ YAZ_CHECK(record_add_metadata_field_id(nmem, record, 3, data_num));
+ YAZ_CHECK(record_add_metadata_field_id(nmem, record, 3, data_num));
+
+ YAZ_CHECK(record_add_metadata(nmem, record, service, "author", data_text));
+ YAZ_CHECK(record_add_metadata(nmem, record, service, "author", data_text));
+
+
+ YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 0, data_text));
+ YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 1, data_text));
+ YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 2, data_num));
+
+ YAZ_CHECK(record_assign_sortkey(nmem, record, service, "relevance", data_text));
+ YAZ_CHECK(record_assign_sortkey(nmem, record, service, "title", data_text));
+ YAZ_CHECK(record_assign_sortkey(nmem, record, service, "year", data_num));
+
+
+
+
-#if 0
- // preparing one record
- // this should have been done by a nice record_create function
- // why the heck does the record know which client it belongs to ??
-
-
- record = nmem_malloc(nmem, sizeof(struct record));
- record->next = 0;
- // which client should I use for record->client = cl; ??
- record->client = 0;
- // and which sortkeys data_types list should I use ??
- record->sortkeys = 0;
- record->metadata
- = nmem_malloc(nmem,
- sizeof(struct record_metadata*) * service->num_metadata);
- memset(record->metadata, 0,
- sizeof(struct record_metadata*) * service->num_metadata);
-#endif
// now we need to put some actual data into the record ... how ??
// there is a hell of a lot spagetti code in logic.c ingest_record()