Ignore:
Timestamp:
2006-12-11T11:22:20+13:00 (17 years ago)
Author:
shaoqun
Message:

added code for accentfolding

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/indexers/mgpp/text/IndexData.cpp

    r8692 r13477  
    3030  dictFile = NULL;
    3131
    32   stem1File = NULL;
    33   stem2File = NULL;
    34   stem3File = NULL;
     32  /* [JFG - Mar 06: Accent folding patch] */
     33  for(int i=STEM_MIN;i <= STEM_MAX;i++)
     34    stemFile[i-1] = NULL;
    3535
    3636  invfFile = NULL;
     
    7979  if (!ReadBlockIdx (dictFile, biTags)) { UnloadData (); return false; }
    8080
    81   // blocked stem index 1
    82   stem1File = open_file (filename, INVF_DICT_BLOCKED_1_SUFFIX,
    83              "rb", MAGIC_STEM_1, MG_ABORT);
    84   if (!sih1.Read (stem1File)) { UnloadData (); return false; }
    85 
    86   fseek (stem1File, sih1.block_idx_start, SEEK_SET);
    87   if (!ReadBlockIdx (stem1File, sii1)) { UnloadData (); return false; }
    88  
    89   // blocked stem index 2
    90   stem2File = open_file (filename, INVF_DICT_BLOCKED_2_SUFFIX,
    91              "rb", MAGIC_STEM_2, MG_ABORT);
    92   if (!sih2.Read (stem2File)) { UnloadData (); return false; }
    93 
    94   fseek (stem2File, sih2.block_idx_start, SEEK_SET);
    95   if (!ReadBlockIdx (stem2File, sii2)) { UnloadData (); return false; }
    96  
    97   // blocked stem index 3
    98   stem3File = open_file (filename, INVF_DICT_BLOCKED_3_SUFFIX,
    99              "rb", MAGIC_STEM_3, MG_ABORT);
    100   if (!sih3.Read (stem3File)) { UnloadData (); return false; }
    101 
    102   fseek (stem3File, sih3.block_idx_start, SEEK_SET);
    103   if (!ReadBlockIdx (stem3File, sii3)) { UnloadData (); return false; }
    104 
     81  /* [JFG - Mar 06: Accent folding patch] */
     82  // read stem indexes
     83  // [KJD - optional stemming patch]
     84  // allow no stem indexes
     85  for(int stem = STEM_MIN; stem <= STEM_MAX; stem++) {
     86    char *suffix = make_suffix (INVF_DICT_BLOCKED_SUFFIX_PAT, stem, NULL);
     87    stemFile[stem-1] = open_file (filename, suffix,
     88                  "rb", MAGIC_STEM_GEN(stem + '0'), MG_MESSAGE);
     89    if (stemFile[stem-1]!= NULL) {
     90      if (!sih[stem-1].Read (stemFile[stem-1])) {
     91    fclose (stemFile[stem-1]);
     92    stemFile[stem-1] = NULL;
     93    //UnloadData (); return false;
     94      }
     95     
     96      fseek (stemFile[stem-1], sih[stem-1].block_idx_start, SEEK_SET);
     97      if (!ReadBlockIdx (stemFile[stem-1], sii[stem-1])) {
     98    fclose (stemFile[stem-1]);
     99    stemFile[stem-1] = NULL;
     100    //UnloadData (); return false;
     101      }
     102    }
     103  }
     104 
     105 
    105106  // inverted file
    106107  invfFile = open_file (filename, INVF_SUFFIX, "rb",
     
    125126  }
    126127
    127   if (stem1File != NULL) {
    128     fclose (stem1File); stem1File = NULL;
    129   }
    130   if (stem2File != NULL) {
    131     fclose (stem2File); stem2File = NULL;
    132   }
    133   if (stem3File != NULL) {
    134     fclose (stem3File); stem3File = NULL;
     128  for(int i=STEM_MIN;i <= STEM_MAX;i++) {
     129    if (stemFile[i-1] != NULL) {
     130      fclose (stemFile[i-1]); stemFile[i-1] = NULL;
     131    }
    135132  }
    136133
Note: See TracChangeset for help on using the changeset viewer.