Dynamic mergekey PAZ-868
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 6 May 2013 12:56:19 +0000 (14:56 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 6 May 2013 12:56:19 +0000 (14:56 +0200)
doc/pazpar2_protocol.xml
src/http_command.c
src/session.c
src/session.h
test/test_http.urls
test/test_http_87.res [new file with mode: 0644]
test/test_http_88.res [new file with mode: 0644]
test/test_http_89.res [new file with mode: 0644]
test/test_http_90.res [new file with mode: 0644]

index 5e806bf..8fb88cf 100644 (file)
@@ -418,7 +418,27 @@ search.pz2?session=2044502273&command=stat
        </para>
       </listitem>
      </varlistentry>
        </para>
       </listitem>
      </varlistentry>
-     
+
+     <varlistentry>
+      <term>mergekey</term>
+      <listitem>
+       <para>
+       Sets mergekey for this show and rest of session, or until
+       another mergekey is given for show. The mergekey value is a
+       comma separated list with one or more names as they appear
+       in the service description  equivalent to
+       <literal>mergekey="optional"</literal> inside a metadata element.
+       If the empty string is given for mergekey it is disabled
+       and rest of session will use the default mergekey from service
+       or stylesheet.
+       </para>
+       <para>
+       This facility, "dynamic mergekey", appeared in Pazpar2 version
+       1.6.31.
+       </para>
+      </listitem>
+     </varlistentry>
+
     </variablelist>
    </para>
    <para>
     </variablelist>
    </para>
    <para>
index cbe09aa..5353e84 100644 (file)
@@ -1211,6 +1211,7 @@ static void cmd_show(struct http_channel *c)
     const char *block = http_argbyname(rq, "block");
     const char *sort = http_argbyname(rq, "sort");
     const char *block_error = http_argbyname(rq, "report");
     const char *block = http_argbyname(rq, "block");
     const char *sort = http_argbyname(rq, "sort");
     const char *block_error = http_argbyname(rq, "report");
+    const char *mergekey = http_argbyname(rq, "mergekey");
     struct conf_service *service = 0;
 
     struct reclist_sortparms *sp;
     struct conf_service *service = 0;
 
     struct reclist_sortparms *sp;
@@ -1233,7 +1234,7 @@ static void cmd_show(struct http_channel *c)
         release_session(c, s);
         return;
     }
         release_session(c, s);
         return;
     }
-    session_sort(s->psession, sp);
+    session_sort(s->psession, sp, mergekey);
 
     status = session_active_clients(s->psession);
 
 
     status = session_active_clients(s->psession);
 
index 5ad2694..ed80133 100644 (file)
@@ -644,7 +644,9 @@ static void session_clear_set(struct session *se, struct reclist_sortparms *sp)
     se->reclist = reclist_create(se->nmem);
 }
 
     se->reclist = reclist_create(se->nmem);
 }
 
-static void session_sort_unlocked(struct session *se, struct reclist_sortparms *sp)
+static void session_sort_unlocked(struct session *se,
+                                  struct reclist_sortparms *sp,
+                                  const char *mergekey)
 {
     struct reclist_sortparms *sr;
     struct client_list *l;
 {
     struct reclist_sortparms *sr;
     struct client_list *l;
@@ -655,20 +657,37 @@ static void session_sort_unlocked(struct session *se, struct reclist_sortparms *
 
     session_log(se, YLOG_DEBUG, "session_sort field=%s increasing=%d type=%d",
                 field, increasing, type);
 
     session_log(se, YLOG_DEBUG, "session_sort field=%s increasing=%d type=%d",
                 field, increasing, type);
-    /* see if we already have sorted for this criteria */
-    for (sr = se->sorted_results; sr; sr = sr->next)
+
+    if (!mergekey ||
+        (se->mergekey && !strcmp(se->mergekey, mergekey)))
     {
     {
-        if (!reclist_sortparms_cmp(sr, sp))
-            break;
+        /* mergekey unchanged.. */
+        /* see if we already have sorted for this criteria */
+        for (sr = se->sorted_results; sr; sr = sr->next)
+        {
+            if (!reclist_sortparms_cmp(sr, sp))
+                break;
+        }
+        if (sr)
+        {
+            session_log(se, YLOG_DEBUG, "search_sort: field=%s increasing=%d type=%d already fetched",
+                        field, increasing, type);
+            return;
+        }
+        session_log(se, YLOG_DEBUG, "search_sort: field=%s increasing=%d type=%d must fetch",
+                    field, increasing, type);
     }
     }
-    if (sr)
+    else
     {
     {
-        session_log(se, YLOG_DEBUG, "search_sort: field=%s increasing=%d type=%d already fetched",
-                    field, increasing, type);
-        return;
+        /* new mergekey must research/reingest anyway */
+        assert(mergekey);
+        xfree(se->mergekey);
+        se->mergekey = *mergekey ? xstrdup(mergekey) : 0;
+        clients_research = 1;
+
+        session_log(se, YLOG_DEBUG, "search_sort: new mergekey = %s",
+                    mergekey);
     }
     }
-    session_log(se, YLOG_DEBUG, "search_sort: field=%s increasing=%d type=%d must fetch",
-                    field, increasing, type);
 
     // We need to reset reclist on every sort that changes the records, not just for position
     // So if just one client requires new searching, we need to clear set.
 
     // We need to reset reclist on every sort that changes the records, not just for position
     // So if just one client requires new searching, we need to clear set.
@@ -717,9 +736,11 @@ static void session_sort_unlocked(struct session *se, struct reclist_sortparms *
     }
 }
 
     }
 }
 
-void session_sort(struct session *se, struct reclist_sortparms *sp) {
+void session_sort(struct session *se, struct reclist_sortparms *sp,
+                  const char *mergekey)
+{
     //session_enter(se, "session_sort");
     //session_enter(se, "session_sort");
-    session_sort_unlocked(se, sp);
+    session_sort_unlocked(se, sp, mergekey);
     //session_leave(se, "session_sort");
 }
 
     //session_leave(se, "session_sort");
 }
 
@@ -925,6 +946,7 @@ void session_destroy(struct session *se)
     normalize_cache_destroy(se->normalize_cache);
     relevance_destroy(&se->relevance);
     reclist_destroy(se->reclist);
     normalize_cache_destroy(se->normalize_cache);
     relevance_destroy(&se->relevance);
     reclist_destroy(se->reclist);
+    xfree(se->mergekey);
     if (nmem_total(se->nmem))
         session_log(se, YLOG_DEBUG, "NMEN operation usage %zd", nmem_total(se->nmem));
     if (nmem_total(se->session_nmem))
     if (nmem_total(se->nmem))
         session_log(se, YLOG_DEBUG, "NMEN operation usage %zd", nmem_total(se->nmem));
     if (nmem_total(se->session_nmem))
@@ -973,6 +995,7 @@ struct session *new_session(NMEM nmem, struct conf_service *service,
     session->databases = 0;
     session->sorted_results = 0;
     session->facet_limits = 0;
     session->databases = 0;
     session->sorted_results = 0;
     session->facet_limits = 0;
+    session->mergekey = 0;
 
     for (i = 0; i <= SESSION_WATCH_MAX; i++)
     {
 
     for (i = 0; i <= SESSION_WATCH_MAX; i++)
     {
@@ -1501,15 +1524,25 @@ static int get_mergekey_from_doc(xmlDoc *doc, xmlNode *root, const char *name,
 }
 
 static const char *get_mergekey(xmlDoc *doc, struct client *cl, int record_no,
 }
 
 static const char *get_mergekey(xmlDoc *doc, struct client *cl, int record_no,
-                                struct conf_service *service, NMEM nmem)
+                                struct conf_service *service, NMEM nmem,
+                                const char *session_mergekey)
 {
     char *mergekey_norm = 0;
     xmlNode *root = xmlDocGetRootElement(doc);
     WRBUF norm_wr = wrbuf_alloc();
 {
     char *mergekey_norm = 0;
     xmlNode *root = xmlDocGetRootElement(doc);
     WRBUF norm_wr = wrbuf_alloc();
+    xmlChar *mergekey;
 
 
-    /* consider mergekey from XSL first */
-    xmlChar *mergekey = xmlGetProp(root, (xmlChar *) "mergekey");
-    if (mergekey)
+    if (session_mergekey)
+    {
+        int i, num = 0;
+        char **values = 0;
+        nmem_strsplit_escape2(nmem, ",", session_mergekey, &values,
+                              &num, 1, '\\', 1);
+
+        for (i = 0; i < num; i++)
+            get_mergekey_from_doc(doc, root, values[i], service, norm_wr);
+    }
+    else if ((mergekey = xmlGetProp(root, (xmlChar *) "mergekey")))
     {
         const char *norm_str;
         pp2_charset_token_t prt =
     {
         const char *norm_str;
         pp2_charset_token_t prt =
@@ -1667,7 +1700,8 @@ int ingest_record(struct client *cl, const char *rec,
         return -2;
     }
 
         return -2;
     }
 
-    mergekey_norm = get_mergekey(xdoc, cl, record_no, service, nmem);
+    mergekey_norm = get_mergekey(xdoc, cl, record_no, service, nmem,
+        se->mergekey);
     if (!mergekey_norm)
     {
         session_log(se, YLOG_WARN, "Got no mergekey");
     if (!mergekey_norm)
     {
         session_log(se, YLOG_WARN, "Got no mergekey");
index 0b05afc..af73f03 100644 (file)
@@ -111,6 +111,7 @@ struct session {
     struct named_termlist termlists[SESSION_MAX_TERMLISTS];
     struct relevance *relevance;
     struct reclist *reclist;
     struct named_termlist termlists[SESSION_MAX_TERMLISTS];
     struct relevance *relevance;
     struct reclist *reclist;
+    char *mergekey;
     struct session_watchentry watchlist[SESSION_WATCH_MAX + 1];
     int total_records;
     int total_merged;
     struct session_watchentry watchlist[SESSION_WATCH_MAX + 1];
     int total_records;
     int total_merged;
@@ -159,7 +160,8 @@ void session_destroy(struct session *s);
 void session_init_databases(struct session *s);
 void statistics(struct session *s, struct statistics *stat);
 
 void session_init_databases(struct session *s);
 void statistics(struct session *s, struct statistics *stat);
 
-void session_sort(struct session *se, struct reclist_sortparms *sp);
+void session_sort(struct session *se, struct reclist_sortparms *sp,
+                  const char *mergekey);
 
 enum pazpar2_error_code session_search(struct session *s, const char *query,
                                        const char *startrecs,
 
 enum pazpar2_error_code session_search(struct session *s, const char *query,
                                        const char *startrecs,
index e51c15e..c641fd0 100644 (file)
@@ -84,3 +84,7 @@ http://localhost:9763/search.pz2?session=10&command=search&query=teachers&limit=
 http://localhost:9763/search.pz2?session=10&command=show&block=1
 http://localhost:9763/search.pz2?session=10&command=record&id=content%3A+title+the+religious+teachers+of+greece+author+adam+james+medium+book&offset=0&esn=F&r=1
 http://localhost:9763/search.pz2?session=10&command=record&id=content%3A+title+the+religious+teachers+of+greece+author+adam+james+medium+book&offset=0&esn=F&r=2
 http://localhost:9763/search.pz2?session=10&command=show&block=1
 http://localhost:9763/search.pz2?session=10&command=record&id=content%3A+title+the+religious+teachers+of+greece+author+adam+james+medium+book&offset=0&esn=F&r=1
 http://localhost:9763/search.pz2?session=10&command=record&id=content%3A+title+the+religious+teachers+of+greece+author+adam+james+medium+book&offset=0&esn=F&r=2
+http://localhost:9763/search.pz2?session=10&command=search&query=computer
+http://localhost:9763/search.pz2?session=10&command=show&block=1
+http://localhost:9763/search.pz2?session=10&command=show&block=1&mergekey=date
+http://localhost:9763/search.pz2?session=10&command=show&block=1&mergekey=
diff --git a/test/test_http_87.res b/test/test_http_87.res
new file mode 100644 (file)
index 0000000..ab63fe6
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<search><status>OK</status></search>
\ No newline at end of file
diff --git a/test/test_http_88.res b/test/test_http_88.res
new file mode 100644 (file)
index 0000000..837a9ff
--- /dev/null
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show><status>OK</status>
+<activeclients>0</activeclients>
+<merged>9</merged>
+<total>10</total>
+<start>0</start>
+<num>9</num>
+<hit>
+ <md-title>How to program a computer</md-title>
+ <md-author>Jack Collins</md-author>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2788512872">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2614320583">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>2</count>
+ <relevance>48160</relevance>
+ <relevance_info>
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (1.200000);
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (2.400000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.400000) * idf[1](0.200671) (48160);
+score = relevance(48160);
+ </relevance_info>
+ <recid>content: title how to program a computer author jack collins medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer science &amp; technology</md-title>
+ <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Optical pattern recognition</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3659474317">
+  <md-title>Computer science &amp; technology</md-title>
+  <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Optical pattern recognition</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Optical pattern recognition</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>40134</relevance>
+ <relevance_info>
+field=title content=Computer science &amp;amp; technology :;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.200671) (40134);
+score = relevance(40134);
+ </relevance_info>
+ <recid>content: title computer science technology author medium book</recid>
+</hit>
+<hit>
+ <md-title>The Computer Bible</md-title>
+ <md-date>1973-1980</md-date>
+ <md-subject>Bible. O.T</md-subject>
+ <md-subject>Bible</md-subject>
+ <md-description>Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3136897450">
+  <md-title>The Computer Bible</md-title>
+  <md-date>1973-1980</md-date>
+  <md-subject>Bible. O.T</md-subject>
+  <md-subject>Bible</md-subject>
+  <md-description tag="500">Hebrew and Greek; introductions in English</md-description>
+  <md-description tag="500">Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>1</count>
+ <relevance>40134</relevance>
+ <relevance_info>
+field=title content=The Computer Bible /;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(1)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.200671) (40134);
+score = relevance(40134);
+ </relevance_info>
+ <recid>content: title the computer bible author medium book</recid>
+</hit>
+<hit>
+ <md-title>A plan for community college computer development</md-title>
+ <md-date>1971</md-date>
+ <md-subject>Universities and colleges</md-subject>
+ <md-subject>Community colleges</md-subject>
+ <md-description>Cover title</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4182051184">
+  <md-title>A plan for community college computer development</md-title>
+  <md-date>1971</md-date>
+  <md-subject>Universities and colleges</md-subject>
+  <md-subject>Community colleges</md-subject>
+  <md-description tag="500">Cover title</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Universities and colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Community colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>17200</relevance>
+ <relevance_info>
+field=title content=A plan for community college computer development.;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(5)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.200671) (17200);
+score = relevance(17200);
+ </relevance_info>
+ <recid>content: title a plan for community college computer development author medium book</recid>
+</hit>
+<hit>
+ <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+ <md-title-remainder>final report</md-title-remainder>
+ <md-date>1971</md-date>
+ <md-author>Englund, Carl R</md-author>
+ <md-subject>Railroads</md-subject>
+ <md-description>&quot;Contract DOT-UT-10003.&quot;</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4007858895">
+  <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+  <md-title-remainder>final report</md-title-remainder>
+  <md-date>1971</md-date>
+  <md-author>Englund, Carl R</md-author>
+  <md-subject>Railroads</md-subject>
+  <md-description tag="500">&quot;Contract DOT-UT-10003.&quot;</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Railroads</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>17200</relevance>
+ <relevance_info>
+field=title content=Washington metropolitan area rail computer feasib ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.200671) (17200);
+score = relevance(17200);
+ </relevance_info>
+ <recid>content: title washington metropolitan area rail computer feasibility study author englund carl r medium book</recid>
+</hit>
+<hit>
+ <md-title>The Puget Sound Region</md-title>
+ <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-author>Mairs, John W</md-author>
+ <md-subject>Cartography</md-subject>
+ <md-subject>Puget Sound region (Wash.)</md-subject>
+ <md-description>Scale of maps ca. 1:1,000,000</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3311089739">
+  <md-title>The Puget Sound Region</md-title>
+  <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-author>Mairs, John W</md-author>
+  <md-subject>Cartography</md-subject>
+  <md-subject>Puget Sound region (Wash.)</md-subject>
+  <md-description tag="500">Scale of maps ca. 1:1,000,000</md-description>
+  <md-description tag="504">Bibliography: p. 4</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Cartography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>16722</relevance>
+ <relevance_info>
+field=title-remainder content=a portfolio of thematic computer maps /;
+computer: w[1] += w(5) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](5) / length(6) (0.833333);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.833333) * idf[1](0.200671) (16722);
+score = relevance(16722);
+ </relevance_info>
+ <recid>content: title the puget sound region author mairs john w medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+ <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-subject>Radioisotope scanning</md-subject>
+ <md-subject>Scintillation cameras</md-subject>
+ <md-subject>Imaging systems in medicine</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2962705161">
+  <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+  <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-subject>Radioisotope scanning</md-subject>
+  <md-subject>Scintillation cameras</md-subject>
+  <md-subject>Imaging systems in medicine</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Radioisotope scanning</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Scintillation cameras</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Imaging systems in medicine</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>12040</relevance>
+ <relevance_info>
+field=title content=Computer processing of dynamic images from an Ang ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.200671) (12040);
+score = relevance(12040);
+ </relevance_info>
+ <recid>content: title computer processing of dynamic images from an anger scintillation camera author medium book</recid>
+</hit>
+<hit>
+ <md-title>The use of passwords for controlled access to computer resources</md-title>
+ <md-date>1977</md-date>
+ <md-author>Wood, Helen M</md-author>
+ <md-subject>Computers</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3833666606">
+  <md-title>The use of passwords for controlled access to computer resources</md-title>
+  <md-date>1977</md-date>
+  <md-author>Wood, Helen M</md-author>
+  <md-subject>Computers</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Computers</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>12040</relevance>
+ <relevance_info>
+field=title content=The use of passwords for controlled access to com ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(8)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.200671) (12040);
+score = relevance(12040);
+ </relevance_info>
+ <recid>content: title the use of passwords for controlled access to computer resources author wood helen m medium book</recid>
+</hit>
+<hit>
+ <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+ <md-title-remainder>proceedings of the workshop</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Tomography</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3485282028">
+  <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+  <md-title-remainder>proceedings of the workshop</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Tomography</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Tomography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>0</relevance>
+ <relevance_info>
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.000000) * idf[1](0.200671) (0);
+score = relevance(0);
+ </relevance_info>
+ <recid>content: title reconstruction tomography in diagnostic radiology and nuclear medicine author medium book</recid>
+</hit>
+</show>
\ No newline at end of file
diff --git a/test/test_http_89.res b/test/test_http_89.res
new file mode 100644 (file)
index 0000000..837a9ff
--- /dev/null
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show><status>OK</status>
+<activeclients>0</activeclients>
+<merged>9</merged>
+<total>10</total>
+<start>0</start>
+<num>9</num>
+<hit>
+ <md-title>How to program a computer</md-title>
+ <md-author>Jack Collins</md-author>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2788512872">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2614320583">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>2</count>
+ <relevance>48160</relevance>
+ <relevance_info>
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (1.200000);
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (2.400000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.400000) * idf[1](0.200671) (48160);
+score = relevance(48160);
+ </relevance_info>
+ <recid>content: title how to program a computer author jack collins medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer science &amp; technology</md-title>
+ <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Optical pattern recognition</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3659474317">
+  <md-title>Computer science &amp; technology</md-title>
+  <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Optical pattern recognition</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Optical pattern recognition</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>40134</relevance>
+ <relevance_info>
+field=title content=Computer science &amp;amp; technology :;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.200671) (40134);
+score = relevance(40134);
+ </relevance_info>
+ <recid>content: title computer science technology author medium book</recid>
+</hit>
+<hit>
+ <md-title>The Computer Bible</md-title>
+ <md-date>1973-1980</md-date>
+ <md-subject>Bible. O.T</md-subject>
+ <md-subject>Bible</md-subject>
+ <md-description>Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3136897450">
+  <md-title>The Computer Bible</md-title>
+  <md-date>1973-1980</md-date>
+  <md-subject>Bible. O.T</md-subject>
+  <md-subject>Bible</md-subject>
+  <md-description tag="500">Hebrew and Greek; introductions in English</md-description>
+  <md-description tag="500">Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>1</count>
+ <relevance>40134</relevance>
+ <relevance_info>
+field=title content=The Computer Bible /;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(1)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.200671) (40134);
+score = relevance(40134);
+ </relevance_info>
+ <recid>content: title the computer bible author medium book</recid>
+</hit>
+<hit>
+ <md-title>A plan for community college computer development</md-title>
+ <md-date>1971</md-date>
+ <md-subject>Universities and colleges</md-subject>
+ <md-subject>Community colleges</md-subject>
+ <md-description>Cover title</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4182051184">
+  <md-title>A plan for community college computer development</md-title>
+  <md-date>1971</md-date>
+  <md-subject>Universities and colleges</md-subject>
+  <md-subject>Community colleges</md-subject>
+  <md-description tag="500">Cover title</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Universities and colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Community colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>17200</relevance>
+ <relevance_info>
+field=title content=A plan for community college computer development.;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(5)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.200671) (17200);
+score = relevance(17200);
+ </relevance_info>
+ <recid>content: title a plan for community college computer development author medium book</recid>
+</hit>
+<hit>
+ <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+ <md-title-remainder>final report</md-title-remainder>
+ <md-date>1971</md-date>
+ <md-author>Englund, Carl R</md-author>
+ <md-subject>Railroads</md-subject>
+ <md-description>&quot;Contract DOT-UT-10003.&quot;</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4007858895">
+  <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+  <md-title-remainder>final report</md-title-remainder>
+  <md-date>1971</md-date>
+  <md-author>Englund, Carl R</md-author>
+  <md-subject>Railroads</md-subject>
+  <md-description tag="500">&quot;Contract DOT-UT-10003.&quot;</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Railroads</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>17200</relevance>
+ <relevance_info>
+field=title content=Washington metropolitan area rail computer feasib ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.200671) (17200);
+score = relevance(17200);
+ </relevance_info>
+ <recid>content: title washington metropolitan area rail computer feasibility study author englund carl r medium book</recid>
+</hit>
+<hit>
+ <md-title>The Puget Sound Region</md-title>
+ <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-author>Mairs, John W</md-author>
+ <md-subject>Cartography</md-subject>
+ <md-subject>Puget Sound region (Wash.)</md-subject>
+ <md-description>Scale of maps ca. 1:1,000,000</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3311089739">
+  <md-title>The Puget Sound Region</md-title>
+  <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-author>Mairs, John W</md-author>
+  <md-subject>Cartography</md-subject>
+  <md-subject>Puget Sound region (Wash.)</md-subject>
+  <md-description tag="500">Scale of maps ca. 1:1,000,000</md-description>
+  <md-description tag="504">Bibliography: p. 4</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Cartography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>16722</relevance>
+ <relevance_info>
+field=title-remainder content=a portfolio of thematic computer maps /;
+computer: w[1] += w(5) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](5) / length(6) (0.833333);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.833333) * idf[1](0.200671) (16722);
+score = relevance(16722);
+ </relevance_info>
+ <recid>content: title the puget sound region author mairs john w medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+ <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-subject>Radioisotope scanning</md-subject>
+ <md-subject>Scintillation cameras</md-subject>
+ <md-subject>Imaging systems in medicine</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2962705161">
+  <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+  <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-subject>Radioisotope scanning</md-subject>
+  <md-subject>Scintillation cameras</md-subject>
+  <md-subject>Imaging systems in medicine</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Radioisotope scanning</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Scintillation cameras</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Imaging systems in medicine</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>12040</relevance>
+ <relevance_info>
+field=title content=Computer processing of dynamic images from an Ang ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.200671) (12040);
+score = relevance(12040);
+ </relevance_info>
+ <recid>content: title computer processing of dynamic images from an anger scintillation camera author medium book</recid>
+</hit>
+<hit>
+ <md-title>The use of passwords for controlled access to computer resources</md-title>
+ <md-date>1977</md-date>
+ <md-author>Wood, Helen M</md-author>
+ <md-subject>Computers</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3833666606">
+  <md-title>The use of passwords for controlled access to computer resources</md-title>
+  <md-date>1977</md-date>
+  <md-author>Wood, Helen M</md-author>
+  <md-subject>Computers</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Computers</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>12040</relevance>
+ <relevance_info>
+field=title content=The use of passwords for controlled access to com ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(8)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.200671) (12040);
+score = relevance(12040);
+ </relevance_info>
+ <recid>content: title the use of passwords for controlled access to computer resources author wood helen m medium book</recid>
+</hit>
+<hit>
+ <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+ <md-title-remainder>proceedings of the workshop</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Tomography</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3485282028">
+  <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+  <md-title-remainder>proceedings of the workshop</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Tomography</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Tomography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>0</relevance>
+ <relevance_info>
+relevance = 0;
+idf[1] = log(((1 + total(10))/termoccur(9));
+computer: relevance += 100000 * tf[1](0.000000) * idf[1](0.200671) (0);
+score = relevance(0);
+ </relevance_info>
+ <recid>content: title reconstruction tomography in diagnostic radiology and nuclear medicine author medium book</recid>
+</hit>
+</show>
\ No newline at end of file
diff --git a/test/test_http_90.res b/test/test_http_90.res
new file mode 100644 (file)
index 0000000..eee953c
--- /dev/null
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show><status>OK</status>
+<activeclients>0</activeclients>
+<merged>9</merged>
+<total>10</total>
+<start>0</start>
+<num>9</num>
+<hit>
+ <md-title>How to program a computer</md-title>
+ <md-author>Jack Collins</md-author>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2788512872">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2614320583">
+  <md-title>How to program a computer</md-title>
+  <md-author>Jack Collins</md-author>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>2</count>
+ <relevance>24427</relevance>
+ <relevance_info>
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (1.200000);
+field=title content=How to program a computer;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(5) (2.400000);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](2.400000) * idf[1](0.101783) (24427);
+score = relevance(24427);
+ </relevance_info>
+ <recid>content: title how to program a computer author jack collins medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer science &amp; technology</md-title>
+ <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Optical pattern recognition</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3659474317">
+  <md-title>Computer science &amp; technology</md-title>
+  <md-title-remainder>proceedings of a workshop held at the National Bureau of Standards, Gaithersburg, MD, June 3-4, 1976</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Optical pattern recognition</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Optical pattern recognition</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>20356</relevance>
+ <relevance_info>
+field=title content=Computer science &amp;amp; technology :;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.101783) (20356);
+score = relevance(20356);
+ </relevance_info>
+ <recid>content: title computer science technology author medium book</recid>
+</hit>
+<hit>
+ <md-title>The Computer Bible</md-title>
+ <md-date>1973-1980</md-date>
+ <md-subject>Bible. O.T</md-subject>
+ <md-subject>Bible</md-subject>
+ <md-description>Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3136897450">
+  <md-title>The Computer Bible</md-title>
+  <md-date>1973-1980</md-date>
+  <md-subject>Bible. O.T</md-subject>
+  <md-subject>Bible</md-subject>
+  <md-description tag="500">Hebrew and Greek; introductions in English</md-description>
+  <md-description tag="500">Vols. 2, 8: Missoula, Mont. : Published by Scholars Press for Biblical Research Associates</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+ </location>
+ <count>1</count>
+ <relevance>20356</relevance>
+ <relevance_info>
+field=title content=The Computer Bible /;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(1)));
+computer: tf[1] += w[1](6) / length(3) (2.000000);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](2.000000) * idf[1](0.101783) (20356);
+score = relevance(20356);
+ </relevance_info>
+ <recid>content: title the computer bible author medium book</recid>
+</hit>
+<hit>
+ <md-title>A plan for community college computer development</md-title>
+ <md-date>1971</md-date>
+ <md-subject>Universities and colleges</md-subject>
+ <md-subject>Community colleges</md-subject>
+ <md-description>Cover title</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4182051184">
+  <md-title>A plan for community college computer development</md-title>
+  <md-date>1971</md-date>
+  <md-subject>Universities and colleges</md-subject>
+  <md-subject>Community colleges</md-subject>
+  <md-description tag="500">Cover title</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Universities and colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Community colleges</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>8724</relevance>
+ <relevance_info>
+field=title content=A plan for community college computer development.;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(5)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.101783) (8724);
+score = relevance(8724);
+ </relevance_info>
+ <recid>content: title a plan for community college computer development author medium book</recid>
+</hit>
+<hit>
+ <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+ <md-title-remainder>final report</md-title-remainder>
+ <md-date>1971</md-date>
+ <md-author>Englund, Carl R</md-author>
+ <md-subject>Railroads</md-subject>
+ <md-description>&quot;Contract DOT-UT-10003.&quot;</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="4007858895">
+  <md-title>Washington metropolitan area rail computer feasibility study;</md-title>
+  <md-title-remainder>final report</md-title-remainder>
+  <md-date>1971</md-date>
+  <md-author>Englund, Carl R</md-author>
+  <md-subject>Railroads</md-subject>
+  <md-description tag="500">&quot;Contract DOT-UT-10003.&quot;</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Railroads</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>8724</relevance>
+ <relevance_info>
+field=title content=Washington metropolitan area rail computer feasib ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](6) / length(7) (0.857143);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.857143) * idf[1](0.101783) (8724);
+score = relevance(8724);
+ </relevance_info>
+ <recid>content: title washington metropolitan area rail computer feasibility study author englund carl r medium book</recid>
+</hit>
+<hit>
+ <md-title>The Puget Sound Region</md-title>
+ <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-author>Mairs, John W</md-author>
+ <md-subject>Cartography</md-subject>
+ <md-subject>Puget Sound region (Wash.)</md-subject>
+ <md-description>Scale of maps ca. 1:1,000,000</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3311089739">
+  <md-title>The Puget Sound Region</md-title>
+  <md-title-remainder>a portfolio of thematic computer maps</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-author>Mairs, John W</md-author>
+  <md-subject>Cartography</md-subject>
+  <md-subject>Puget Sound region (Wash.)</md-subject>
+  <md-description tag="500">Scale of maps ca. 1:1,000,000</md-description>
+  <md-description tag="504">Bibliography: p. 4</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Cartography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>8481</relevance>
+ <relevance_info>
+field=title-remainder content=a portfolio of thematic computer maps /;
+computer: w[1] += w(5) / (1+log2(1+lead_decay(0.000000) * length(4)));
+computer: tf[1] += w[1](5) / length(6) (0.833333);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.833333) * idf[1](0.101783) (8481);
+score = relevance(8481);
+ </relevance_info>
+ <recid>content: title the puget sound region author mairs john w medium book</recid>
+</hit>
+<hit>
+ <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+ <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+ <md-date>1974</md-date>
+ <md-subject>Radioisotope scanning</md-subject>
+ <md-subject>Scintillation cameras</md-subject>
+ <md-subject>Imaging systems in medicine</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="2962705161">
+  <md-title>Computer processing of dynamic images from an Anger scintillation camera</md-title>
+  <md-title-remainder>the proceedings of a workshop</md-title-remainder>
+  <md-date>1974</md-date>
+  <md-subject>Radioisotope scanning</md-subject>
+  <md-subject>Scintillation cameras</md-subject>
+  <md-subject>Imaging systems in medicine</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Radioisotope scanning</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Scintillation cameras</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+  <md-subjects>Imaging systems in medicine</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>6106</relevance>
+ <relevance_info>
+field=title content=Computer processing of dynamic images from an Ang ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(0)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.101783) (6106);
+score = relevance(6106);
+ </relevance_info>
+ <recid>content: title computer processing of dynamic images from an anger scintillation camera author medium book</recid>
+</hit>
+<hit>
+ <md-title>The use of passwords for controlled access to computer resources</md-title>
+ <md-date>1977</md-date>
+ <md-author>Wood, Helen M</md-author>
+ <md-subject>Computers</md-subject>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3833666606">
+  <md-title>The use of passwords for controlled access to computer resources</md-title>
+  <md-date>1977</md-date>
+  <md-author>Wood, Helen M</md-author>
+  <md-subject>Computers</md-subject>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Computers</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>6106</relevance>
+ <relevance_info>
+field=title content=The use of passwords for controlled access to com ...;
+computer: w[1] += w(6) / (1+log2(1+lead_decay(0.000000) * length(8)));
+computer: tf[1] += w[1](6) / length(10) (0.600000);
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.600000) * idf[1](0.101783) (6106);
+score = relevance(6106);
+ </relevance_info>
+ <recid>content: title the use of passwords for controlled access to computer resources author wood helen m medium book</recid>
+</hit>
+<hit>
+ <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+ <md-title-remainder>proceedings of the workshop</md-title-remainder>
+ <md-date>1977</md-date>
+ <md-subject>Tomography</md-subject>
+ <md-description>Includes bibliographical references and index</md-description>
+ <location id="z3950.indexdata.com/marc"
+    name="Index Data MARC test server" checksum="3485282028">
+  <md-title>Reconstruction tomography in diagnostic radiology and nuclear medicine</md-title>
+  <md-title-remainder>proceedings of the workshop</md-title-remainder>
+  <md-date>1977</md-date>
+  <md-subject>Tomography</md-subject>
+  <md-description tag="504">Includes bibliographical references and index</md-description>
+  <md-test-usersetting>XXXXXXXXXX</md-test-usersetting>
+  <md-test-usersetting-2>test-usersetting-2 data: 
+        YYYYYYYYY</md-test-usersetting-2>
+  <md-subjects>Tomography</md-subjects>
+  <md-subjects>PAZPAR2_NULL_b</md-subjects>
+  <md-subjects>PAZPAR2_NULL_c</md-subjects>
+ </location>
+ <count>1</count>
+ <relevance>0</relevance>
+ <relevance_info>
+relevance = 0;
+idf[1] = log(((1 + total(30))/termoccur(28));
+computer: relevance += 100000 * tf[1](0.000000) * idf[1](0.101783) (0);
+score = relevance(0);
+ </relevance_info>
+ <recid>content: title reconstruction tomography in diagnostic radiology and nuclear medicine author medium book</recid>
+</hit>
+</show>
\ No newline at end of file