X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ftest_relevance.c;h=ec393f3a54c064c2e915cecb411a93d9b17befe3;hb=366d6c85be3bfbc1290eba705b73ca4bbaa51a37;hp=e9c5b1a8a9c2c0cdee50cf4d8c7446bb2a93e605;hpb=28abdeedf0bae79bc968f69d7a2540e641737e63;p=pazpar2-moved-to-github.git diff --git a/src/test_relevance.c b/src/test_relevance.c index e9c5b1a..ec393f3 100644 --- a/src/test_relevance.c +++ b/src/test_relevance.c @@ -1,4 +1,4 @@ -/* $Id: test_relevance.c,v 1.2 2007-04-17 13:30:24 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. @@ -19,17 +19,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #if HAVE_CONFIG_H #include "cconfig.h" #endif @@ -42,14 +31,10 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include -//#include "pazpar2.h" +#include "config.h" #include "relevance.h" - - - - - - +#include "record.h" +#include "reclists.h" void test_relevance(int argc, char **argv) @@ -61,72 +46,95 @@ void test_relevance(int argc, char **argv) {"abe", "fisk", 0}; // {"ål", "økologi", "æble", 0}; - struct record_cluster *cluster = 0; - struct conf_service service; + //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); + + YAZ_CHECK(conf_service_add_metadata(nmem, service, 0, "title", + Metadata_type_generic, Metadata_merge_unique, + 1, 1, 1, 0)); + + YAZ_CHECK(conf_service_add_metadata(nmem, service, 1, "author", + Metadata_type_generic, Metadata_merge_longest, + 1, 1, 1, 0)); + + YAZ_CHECK(conf_service_add_metadata(nmem, service, 2, "isbn", + Metadata_type_number, Metadata_merge_no, + 1, 1, 1, 0)); + + YAZ_CHECK(conf_service_add_metadata(nmem, service, 3, "year", + Metadata_type_year, Metadata_merge_range, + 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)); + + + + - // setting up service - sic! - // this should have been done by a nice service_create function !!! - - service.num_metadata = 1; - service.metadata = 0; - service.num_sortkeys = 0; - service.sortkeys = 0; - if (service.num_metadata) - service.metadata - = nmem_malloc(nmem, - sizeof(struct conf_metadata) * service.num_metadata); - else - service.metadata = 0; - service.metadata->name = nmem_strdup(nmem, "aname"); - //service.metadata->brief = 1; - //service.metadata->termlist = 1; - //service.metadata->rank = 1; - //service.metadata->type = Metadata_type_generic; - //service.metadata->type = Metadata_type_year; - //service.metadata->merge = Metadata_merge_no; - //service.metadata->merge = Metadata_merge_unique; - //service.metadata->merge = Metadata_merge_longest; - //service.metadata->merge = Metadata_merge_range; - //service.metadata->merge = Metadata_merge_all; - - - if (service.num_sortkeys) - service.sortkeys - = nmem_malloc(nmem, - sizeof(struct conf_sortkey) * service.num_sortkeys); - else - service.sortkeys = 0; - // service.sortkeys.type = Metadata_sortkey_numeric; - // service.sortkeys.type = Metadata_sortkey_skiparticle; - // service.sortkeys.name = service.metadata->name; - //service.metadata->sortkey_offset = sk_node; - - - - // 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); // now we need to put some actual data into the record ... how ?? @@ -254,12 +262,11 @@ void test_relevance(int argc, char **argv) //normalize_mergekey((char *) mergekey_norm, 0); +#if 0 // insert one record into recordlist/cluster - what's a cluster, exactly?? - cluster = reclist_insert(list, &service, record, (char *)mergekey, &total); - - + cluster = reclist_insert(list, service, record, (char *)mergekey, &total); relevance_newrec(rel, cluster); - +#endif @@ -271,15 +278,14 @@ void test_relevance(int argc, char **argv) //relevance_donerecord(rel, cluster); // relevance_countwords(se->rel, cluster, - // (char *) value, service.metadata->rank); + // (char *) value, service->metadata->rank); // nmem_destroy(nmem); - YAZ_CHECK(0 == 0); - YAZ_CHECK_EQ(0, 1); - + //YAZ_CHECK(0 == 0); + //YAZ_CHECK_EQ(0, 1); }