X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=TextCollection.h;h=f41084da633e1557c06c451e13c190f1f381c40a;hb=af8938dbee21244687184dd0502a84ce1af70c50;hp=e7f0d4bb17de878d0d028c29d62b5b41ae50bad7;hpb=ccc18959e93d8986c0ce81209865a0a2b5f42be6;p=SXSI%2FTextCollection.git diff --git a/TextCollection.h b/TextCollection.h index e7f0d4b..f41084d 100644 --- a/TextCollection.h +++ b/TextCollection.h @@ -86,7 +86,13 @@ namespace SXSI * New texts can not be inserted after this operation. */ virtual void MakeStatic() = 0; - + + /** + tests if the string pointed to by DocId is empty + */ + + virtual bool EmptyText(DocId) const = 0; + /** * Displaying content * @@ -99,13 +105,13 @@ namespace SXSI * * Note: Parameters i and j are text positions inside the k'th text. */ - virtual uchar* GetText(DocId, TextPosition, TextPosition) const = 0; +// virtual uchar* GetText(DocId, TextPosition, TextPosition) const = 0; /** * Returns backwards (reverse) iterator to the end of i'th text * * Note: Do we need this? * Forward iterator would be really in-efficient compared to - * getText(k) and getText(k, i, j). + * getText(k). * * TODO Define and implement const_reverse_iterator. */ @@ -126,8 +132,21 @@ namespace SXSI virtual bool IsLessThan(uchar const *) const = 0; /** - * Counting queries - * + * 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. + */ + virtual ulong Count(uchar const *) const = 0; + /** + * More counting queries * Result is the number of documents. */ virtual unsigned CountPrefix(uchar const *) const = 0; @@ -136,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 * @@ -149,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 * @@ -157,6 +194,8 @@ namespace SXSI // Data type for results typedef std::vector > 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().