Ignore:
Timestamp:
2000-07-24T14:46:11+12:00 (24 years ago)
Author:
kjm18
Message:

added full text browsing functionality

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/mgpp/text/Terms.cpp

    r1124 r1300  
    143143      (r1.termFreqs == r2.termFreqs));
    144144}
     145
     146//-------------------------------------------------------
     147// new BrowseQueryResult stuff
     148void BrowseQueryResult::Clear () {
     149  termFreqs.erase (termFreqs.begin(), termFreqs.end());
     150}
     151
     152BrowseQueryResult::BrowseQueryResult () {
     153  Clear ();
     154}
     155
     156
     157
     158ostream &operator<< (ostream &s, const BrowseQueryResult &r) {
     159  s << "terms: ";
     160  unsigned long i;
     161  for (i=0; i<r.termFreqs.size(); i++)
     162    s << r.termFreqs[i] << ", ";
     163    s << "\n\n";
     164  return s;
     165}
     166
     167
     168bool operator== (const BrowseQueryResult &r1, const BrowseQueryResult &r2) {
     169  return ((r1.termFreqs == r2.termFreqs));
     170     
     171}
     172
     173
     174
    145175
    146176//--------------------------------------
     
    668698    result.ranks.erase (result.ranks.begin(), result.ranks.end());
    669699}
     700
     701
     702
     703//--------------------------------------------------------------
     704// functions to support full text browse
     705
     706void FindNearestWordNumber (IndexData &indexData,
     707                const UCArray &term,
     708                unsigned long &number) {
     709
     710    // find the word number for this term
     711    unsigned long wordElNum = 0;
     712    unsigned long numLevels = indexData.bdh.num_levels;
     713    word_block_dict_el wordDictEl;
     714    wordDictEl.SetNumLevels (numLevels);
     715    if (NearestSearchWordBlockDictEl (indexData.dictFile, indexData.biWords,
     716                      indexData.bdh.entries_per_wblk,
     717                      indexData.bdh.word_dict_size,
     718                      numLevels, term, wordDictEl, wordElNum))
     719      number = wordElNum;
     720
     721}
     722
     723void GetTermList(IndexData &indexData,
     724         unsigned long startTerm,
     725         unsigned long numTerms,
     726         TermFreqArray &terms) {
     727
     728  word_block_dict_el_array wordBlocks; // = new word_block_dict_el_array();
     729  TermFreqData termdata;
     730
     731  terms.erase(terms.begin(), terms.end());
     732
     733  SearchWordBlockDictElNumRange (indexData.dictFile, indexData.biWords,
     734                 indexData.bdh.entries_per_wblk,
     735                 indexData.bdh.word_dict_size,
     736                 indexData.bdh.num_levels, startTerm,
     737                 numTerms, wordBlocks);
     738
     739  word_block_dict_el_array::iterator here = wordBlocks.begin();
     740  word_block_dict_el_array::iterator end = wordBlocks.end();
     741
     742  while (here != end) {
     743    termdata.Clear();
     744    termdata.term = (*here).el;
     745    termdata.termFreq = (*here).freq;
     746    terms.push_back(termdata);
     747    here++;
     748  }
     749
     750}
     751
     752void GetTermList(IndexData &indexData,
     753         unsigned long startTerm,
     754         unsigned long numTerms,
     755         UCArrayVector &terms) {
     756
     757 
     758 
     759  SearchWordBlockDictElNumRange (indexData.dictFile, indexData.biWords,
     760                 indexData.bdh.entries_per_wblk,
     761                 indexData.bdh.word_dict_size,
     762                 indexData.bdh.num_levels, startTerm,
     763                 numTerms, terms);
     764
     765}
     766
     767
     768
Note: See TracChangeset for help on using the changeset viewer.