Changeset 8919 for trunk/indexers/mg
- Timestamp:
- 2005-01-20T16:06:52+13:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/indexers/mg/jni/MGWrapperImpl.c
r7629 r8919 57 57 #define MAX_INDEXES_CACHED 3 58 58 59 /* copied from mgquery, needed to convert paragraph numbers to document numbers 60 for greenstone */ 61 #if defined(PARADOCNUM) || defined(NZDL) 62 static int GetDocNumFromParaNum(query_data *qd, int paranum) { 63 int Documents = qd->td->cth.num_of_docs; 64 int *Paragraph = qd->paragraph; 65 int low = 1, high = Documents; 66 int mid = (low+high)/2; 67 68 while ((mid = (low+high)/2) >=1 && mid <= Documents) 69 { 70 if (paranum > Paragraph[mid]) 71 low = mid+1; 72 else if (paranum <= Paragraph[mid-1]) 73 high = mid-1; 74 else 75 return mid; 76 } 77 FatalError(1, "Bad paragraph number.\n"); 78 return 0; 79 } 80 #endif 81 59 82 60 83 /********************************************* … … 407 430 rqi.MaxDocsToRetrieve = data->queryInfo->maxDocs; /* Get only the desired number */ 408 431 rqi.MaxParasToRetrieve = rqi.MaxDocsToRetrieve; /* OK? */ 432 /* we may need to get more paragraphs to get enough documents. I copied the following from mgquery. it seems to work, not sure why - kjdon */ 433 if (qd->id->ifh.InvfLevel == 3 && GetEnv ("maxparas")) { 434 rqi.MaxParasToRetrieve = atoi (GetEnv ("maxparas")); 435 } 436 409 437 rqi.Sort = 1; /* Sort the query terms by frequency before ranking */ 410 438 rqi.AccumMethod = 'L'; /* Use a list when accumulating (has bugs though...) */ … … 450 478 /* Record the matching documents, but only the number requested */ 451 479 printf("Number of matching documents: %d\n", qd->DL->num); 480 452 481 for (i = 0; (i < qd->DL->num && i < data->queryInfo->maxDocs); i++) { 453 482 int doc_num = qd->DL->DE[i].DocNum; 483 #if defined(PARADOCNUM) || defined(NZDL) 484 if (qd->id->ifh.InvfLevel == 3) { 485 /* pararaph level, need to convert to doc level*/ 486 doc_num = GetDocNumFromParaNum(qd, doc_num); 487 } 488 #endif 454 489 float doc_weight = qd->DL->DE[i].Weight; 455 490
Note:
See TracChangeset
for help on using the changeset viewer.