Added queries for DocId intervals
authornvalimak <nvalimak@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Wed, 11 Mar 2009 11:35:15 +0000 (11:35 +0000)
committernvalimak <nvalimak@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Wed, 11 Mar 2009 11:35:15 +0000 (11:35 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/TextCollection@249 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

TextCollection.h

index 37d5cb5..f41084d 100644 (file)
@@ -131,6 +131,15 @@ namespace SXSI
         // Is there a text that is lexicographically less than given string?
         virtual bool IsLessThan(uchar const *) const = 0;
 
+        /**
+         * Existential queries for given DocId interval.
+         */
+        virtual bool IsPrefix(uchar const *, DocId, DocId) const = 0;
+        virtual bool IsSuffix(uchar const *, DocId, DocId) const = 0;
+        virtual bool IsEqual(uchar const *, DocId, DocId) const = 0;
+        virtual bool IsContains(uchar const *, DocId, DocId) const = 0;
+        virtual bool IsLessThan(uchar const *, DocId, DocId) const = 0;
+
         /**
          * Counting queries
          * Result is the number of occurrences.
@@ -146,6 +155,15 @@ namespace SXSI
         virtual unsigned CountContains(uchar const *) const = 0;
         virtual unsigned CountLessThan(uchar const *) const = 0;
 
+        /**
+         * Counting queries for given DocId interval
+         */
+        virtual unsigned CountPrefix(uchar const *, DocId, DocId) const = 0;
+        virtual unsigned CountSuffix(uchar const *, DocId, DocId) const = 0;
+        virtual unsigned CountEqual(uchar const *, DocId, DocId) const = 0;
+        virtual unsigned CountContains(uchar const *, DocId, DocId) const = 0;
+        virtual unsigned CountLessThan(uchar const *, DocId, DocId) const = 0;
+
         /**
          * Document reporting queries
          *
@@ -159,6 +177,15 @@ namespace SXSI
         virtual document_result Contains(uchar const *) const = 0;
         virtual document_result LessThan(uchar const *) const = 0;
 
+        /**
+         * Document reporting queries for given DocId interval.
+         */
+        virtual document_result Prefix(uchar const *, DocId, DocId) const = 0;
+        virtual document_result Suffix(uchar const *, DocId, DocId) const = 0;
+        virtual document_result Equal(uchar const *, DocId, DocId) const = 0;
+        virtual document_result Contains(uchar const *, DocId, DocId) const = 0;
+        virtual document_result LessThan(uchar const *, DocId, DocId) const = 0;
+
         /**
          * Full reporting queries
          *
@@ -167,6 +194,8 @@ namespace SXSI
         // Data type for results
         typedef std::vector<std::pair<DocId, TextPosition> > full_result;
         virtual full_result FullContains(uchar const *) const = 0;
+        // Full reporting query for given DocId interval
+        virtual full_result FullContains(uchar const *, DocId, DocId) const = 0;
 
     protected:
         // Protected constructor; call the static function InitTextCollection().