X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fkcompare.c;h=fc633e156ec80c68431aa5be22e73dbd642473f6;hb=ef9dd3a80ee0fa95abeeb0a0e2d66856b6dd2d05;hp=fa407ecbdb0ebb608cfb52fdc46ccc007ddae6b0;hpb=e16099ccf0ad1aab3ff7930bc4ea542357af0e38;p=idzebra-moved-to-github.git diff --git a/index/kcompare.c b/index/kcompare.c index fa407ec..fc633e1 100644 --- a/index/kcompare.c +++ b/index/kcompare.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: kcompare.c,v $ - * Revision 1.3 1995-09-07 13:58:36 adam + * Revision 1.6 1995-09-14 07:48:23 adam + * Record control management. + * + * Revision 1.5 1995/09/11 13:09:34 adam + * More work on relevance feedback. + * + * Revision 1.4 1995/09/08 14:52:27 adam + * Minor changes. Dictionary is lower case now. + * + * Revision 1.3 1995/09/07 13:58:36 adam * New parameter: result-set file descriptor (RSFD) to support multiple * positions within the same result-set. * Boolean operators: and, or, not implemented. @@ -23,10 +32,20 @@ #include #include #include +#include #include #include "index.h" +void key_logdump (int logmask, const void *p) +{ + struct it_key key; + + memcpy (&key, p, sizeof(key)); + logf (logmask, "%7d s=%-4d f=%d,%d", key.sysno, key.seqno, + key.attrSet, key.attrUse); +} + int key_compare (const void *p1, const void *p2) { struct it_key i1, i2; @@ -39,6 +58,7 @@ int key_compare (const void *p1, const void *p2) else return -2; } +#if IT_KEY_HAVE_SEQNO if (i1.seqno != i2.seqno) { if (i1.seqno > i2.seqno) @@ -46,28 +66,33 @@ int key_compare (const void *p1, const void *p2) else return -1; } -#if IT_KEY_HAVE_FIELD - if (i1.field != i2.field) +#else + if (i1.freq != i2.freq) { - if (i1.field > i2.field) + if (i1.freq > i2.freq) return 1; else return -1; } #endif + if (i1.attrSet != i2.attrSet) + { + if (i1.attrSet > i2.attrSet) + return 1; + else + return -1; + } + if (i1.attrUse != i2.attrUse) + { + if (i1.attrUse > i2.attrUse) + return 1; + else + return -1; + } return 0; } -int key_compare_x (const struct it_key *i1, const struct it_key *i2) +int index_char_cvt (int c) { - if ( i1->sysno != i2->sysno) - return i1->sysno - i2->sysno; -#if IT_KEY_HAVE_FIELD - if ( i1->seqno != i2->seqno) - return i1->seqno - i2->seqno; - return i1->field - i2->field; -#else - return i1->seqno - i2->seqno; -#endif + return tolower (c); } -