-
-RSET rpn_search (ZebraHandle zh, NMEM nmem,
- Z_RPNQuery *rpn, int num_bases, char **basenames,
- const char *setname,
- ZebraSet sset)
-{
- RSET rset;
- oident *attrset;
- oid_value attributeSet;
- Z_SortKeySpecList *sort_sequence;
- int sort_status, i;
-
- zh->errCode = 0;
- zh->errString = NULL;
- zh->hits = 0;
-
- sort_sequence = (Z_SortKeySpecList *)
- nmem_malloc (nmem, sizeof(*sort_sequence));
- sort_sequence->num_specs = 10;
- sort_sequence->specs = (Z_SortKeySpec **)
- nmem_malloc (nmem, sort_sequence->num_specs *
- sizeof(*sort_sequence->specs));
- for (i = 0; i<sort_sequence->num_specs; i++)
- sort_sequence->specs[i] = 0;
-
- attrset = oid_getentbyoid (rpn->attributeSetId);
- attributeSet = attrset->value;
- rset = rpn_search_structure (zh, rpn->RPNStructure, attributeSet,
- nmem, sort_sequence, num_bases, basenames);
- if (!rset)
- return 0;
-
- if (zh->errCode)
- logf (LOG_DEBUG, "search error: %d", zh->errCode);
-
- for (i = 0; sort_sequence->specs[i]; i++)
- ;
- sort_sequence->num_specs = i;
- if (!i)
- resultSetRank (zh, sset, rset);
- else
- {
- logf (LOG_DEBUG, "resultSetSortSingle in rpn_search");
- resultSetSortSingle (zh, nmem, sset, rset,
- sort_sequence, &sort_status);
- if (zh->errCode)
- {
- logf (LOG_DEBUG, "resultSetSortSingle status = %d", zh->errCode);
- }
- }
- return rset;
-}
-