ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/Search/trunk/Ranker.hpp
(Generate patch)

Comparing:
trunk/Search/Ranker.h (file contents), Revision 194 by douglas, 2003-07-11T00:54:47-07:00 vs.
Search/trunk/Ranker.hpp (file contents), Revision 372 by douglas, 2008-08-23T04:00:12-07:00

# Line 1 | Line 1
1   /* ============================================================================
2   * Douglas Thrift's Search Engine License
3   *
4 < * Copyright (C) 2002-2003, Douglas Thrift. All Rights Reserved.
4 > * Copyright (C) 2002-2004, 2008, Douglas Thrift. All Rights Reserved.
5   * Redistribution and use in source and binary forms, with or without
6   * modification, are permitted provided that the following conditions are met:
7   *
# Line 46 | Line 46
46   //
47   // Douglas Thrift
48   //
49 < // $Id: Ranker.h,v 1.4 2003/07/11 07:54:47 douglas Exp $
49 > // $Id$
50  
51 < #ifndef _Ranker_h_
52 < #define _Ranker_h_
51 > #ifndef _Ranker_hpp_
52 > #define _Ranker_hpp_
53  
54 < #include "Search.h"
55 < #include "Page.h"
54 > #include "Search.hpp"
55 > #include "Page.hpp"
56  
57   class Ranker : public Page
58   {
59   private:
60 +        typedef map<size_t, size_t> Map;
61          enum state { all, title, url, text };
62 +        enum { sampleMax = 160 };
63          string sample;
64 <        map<unsigned, unsigned> occurrencesTitle;
65 <        map<unsigned, unsigned> occurrencesDescription;
66 <        map<unsigned, unsigned> occurrencesText;
67 <        unsigned value;
64 >        Map occurrencesTitle;
65 >        Map occurrencesDescription;
66 >        Map occurrencesText;
67 >        size_t value;
68          vector<string> required;
69          vector<string> excluded;
70          vector<string> eitherOr;
71 <        unsigned requiredValue;
72 <        unsigned excludedValue;
73 <        unsigned eitherOrValue;
71 >        size_t requiredValue;
72 >        size_t excludedValue;
73 >        size_t eitherOrValue;
74          string site;
75          state allIn;
76          string lowerURL;
# Line 79 | Line 81 | private:
81          void checkRequired();
82          void checkExcluded();
83          void checkEitherOr();
84 <        unsigned find(string word, const string& where);
85 <        unsigned find(string word, const string& where, map<unsigned, unsigned>&
86 <                occurrences);
87 <        unsigned phrase(const string& phrase, const string& where);
88 <        unsigned phrase(const string& phrase, const string& where, map<unsigned,
89 <                unsigned>& occurrences);
90 <        unsigned phrase(const vector<string>& words, unsigned word, unsigned&
91 <                begin, bool start, const string& where);
92 <        unsigned phrase(const vector<string>& words, unsigned word, unsigned&
93 <                begin, bool start, const string& where, map<unsigned, unsigned>&
92 <                occurrences);
93 <        unsigned evaluate(vector<unsigned>& ins);
84 >        size_t find(string word, const string& where);
85 >        size_t find(string word, const string& where, Map& occurrences);
86 >        size_t phrase(const string& phrase, const string& where);
87 >        size_t phrase(const string& phrase, const string& where,
88 >                Map& occurrences);
89 >        size_t phrase(const vector<string>& words, size_t word,
90 >                size_t& begin, bool start, const string& where);
91 >        size_t phrase(const vector<string>& words, size_t word,
92 >                size_t& begin, bool start, const string& where, Map& occurrences);
93 >        size_t evaluate(vector<size_t>& ins);
94          void decrap(string& crap);
95   public:
96 <        Ranker();
97 <        Ranker(Page& page);
96 >        Ranker(Page& page) : Page(page), value(0), requiredValue(0),
97 >                excludedValue(0), eitherOrValue(0), allIn(all) {}
98          ~Ranker() {}
99          void rank(vector<string> query);
100          void setSample();
101          string getTitle();
102          string getDescription();
103 <        string getSample() { return sample; }
104 <        bool operator==(const unsigned number) const;
103 >        string& getSample() { return sample; }
104 >        bool operator==(const size_t number) const;
105          bool operator==(const Ranker& ranker) const;
106 <        bool operator!=(const unsigned number) const;
106 >        bool operator!=(const size_t number) const;
107          bool operator!=(const Ranker& ranker) const;
108 <        bool operator<(const unsigned number) const;
108 >        bool operator<(const size_t number) const;
109          bool operator<(const Ranker& ranker) const;
110 <        bool operator>(const unsigned number) const;
110 >        bool operator>(const size_t number) const;
111          bool operator>(const Ranker& ranker) const;
112 <        bool operator<=(const unsigned number) const
112 >        bool operator<=(const size_t number) const
113          {
114                  return *this == number || *this < number;
115          }
# Line 117 | Line 117 | public:
117          {
118                  return *this == ranker || *this < ranker;
119          }
120 <        bool operator>=(const unsigned number) const
120 >        bool operator>=(const size_t number) const
121          {
122                  return *this == number || *this > number;
123          }
# Line 126 | Line 126 | public:
126                  return *this == ranker || *this > ranker;
127          }
128   // friends:
129 <        friend bool operator==(const unsigned number, const Ranker& ranker)
129 >        friend bool operator==(const size_t number, const Ranker& ranker)
130          {
131                  return ranker == number;
132          }
133 <        friend bool operator!=(const unsigned number, const Ranker& ranker)
133 >        friend bool operator!=(const size_t number, const Ranker& ranker)
134          {
135                  return ranker != number;
136          }
137 <        friend bool operator>(const unsigned number, const Ranker& ranker)
137 >        friend bool operator>(const size_t number, const Ranker& ranker)
138          {
139                  return ranker < number;
140          }
141 <        friend bool operator<(const unsigned number, const Ranker& ranker)
141 >        friend bool operator<(const size_t number, const Ranker& ranker)
142          {
143                  return ranker > number;
144          }
145 <        friend bool operator>=(const unsigned number, const Ranker& ranker)
145 >        friend bool operator>=(const size_t number, const Ranker& ranker)
146          {
147                  return ranker <= number;
148          }
149 <        friend bool operator<=(const unsigned number, const Ranker& ranker)
149 >        friend bool operator<=(const size_t number, const Ranker& ranker)
150          {
151                  return ranker >= number;
152          }

Comparing:
trunk/Search/Ranker.h (property svn:eol-style), Revision 194 by douglas, 2003-07-11T00:54:47-07:00 vs.
Search/trunk/Ranker.hpp (property svn:eol-style), Revision 372 by douglas, 2008-08-23T04:00:12-07:00

# Line 0 | Line 1
1 + native

Comparing:
trunk/Search/Ranker.h (property svn:keywords), Revision 194 by douglas, 2003-07-11T00:54:47-07:00 vs.
Search/trunk/Ranker.hpp (property svn:keywords), Revision 372 by douglas, 2008-08-23T04:00:12-07:00

# Line 0 | Line 1
1 + Id

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines