<HTML>
<HEAD>
<TITLE>Re: DRAFT of specification if Indexing By words for strings.</TITLE>
</HEAD>
<BODY>
<FONT FACE="Verdana">On 9/22/04 4:16 PM, &quot;Ruslan Zasukhin&quot; &lt;sunshine@public.kherson.ua&gt; wrote:<BR>
<BR>
<FONT COLOR="#008000">&gt;&gt; I think the ability to let developers specify certain index<BR>
&gt;&gt; properties would be very powerful, and I'm sure that many other uses<BR>
&gt;&gt; would be found for this (other than my issue about sorting). One<BR>
&gt;&gt; minor point, since you would want this to be extensible, would be to<BR>
&gt;&gt; name the methods something like this: .AddIgnoreWord,<BR>
&gt;&gt; .DeleteIgnoreWord, and .DeleteAllIgnoreWords.<BR>
</FONT><BR>
This is what I have made in C++<BR>
<BR>
/**<BR>
&nbsp;&nbsp;&nbsp;&nbsp;If some Vstring or VarChar or VText field has option IndexByWords is TRUE,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;then this class can specify additional parameters for its index. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;This parameters allow to developer/user better control the full text indexing.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;This parameters have no affect if option IndexByWords is FALSE.<BR>
*/<BR>
interface I_IndexStrPrefs : public I_Unknown<BR>
{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// ---------------------<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Construction:<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
virtual &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~I_IndexStrPrefs( void ) {} &nbsp;&nbsp;&nbsp;<BR>
<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// ---------------------<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Properties:<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &lt;Name&gt;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//! returns the name of this object.<BR>
virtual &nbsp;&nbsp;&nbsp;const String&amp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_Name( void ) const throw() = 0; <BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//! @error NameNotUnique. <BR>
virtual &nbsp;&nbsp;&nbsp;void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;put_Name( const String&amp; inNewName ) = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &lt;IgnoreLength&gt; <BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//! All words with length less or equal to this length<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//! will be ignored by String Index with ByWords option.<BR>
virtual ulong &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_IgnoreLength( void ) const throw() = 0; <BR>
virtual &nbsp;&nbsp;&nbsp;void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;put_IgnoreLength( ulong inValue ) throw() = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &lt;IgnoreWordsCount&gt; [r/o]<BR>
<BR>
virtual ulong &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_IgnoreWordsCount( void ) const throw() = 0; <BR>
<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &lt;IsIgnoreWord&gt; [r/w]<BR>
<BR>
virtual bool &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_IsIgnoreWord( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&amp; &nbsp;&nbsp;&nbsp;&nbsp;inWord ); &nbsp;&nbsp;&nbsp;<BR>
<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// ---------------------<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Methods:<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** Add the specified word to the list IgnoreWords.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@param &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inWord a word you want to add to the list. */<BR>
virtual void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AddIgnoreWord( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&amp; &nbsp;&nbsp;&nbsp;&nbsp;inWord ) = 0; &nbsp;&nbsp;&nbsp;<BR>
<BR>
virtual void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeleteIgnoreWord( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&amp; &nbsp;&nbsp;&nbsp;&nbsp;inWord ) = 0; &nbsp;&nbsp;&nbsp;<BR>
<BR>
virtual void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeleteAllIgnoreWords( void ) = 0; &nbsp;&nbsp;&nbsp;<BR>
<BR>
};<BR>
<BR>
<BR>
<BR>
-- <BR>
Best regards,<BR>
Ruslan Zasukhin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ I feel the need...the need for speed ]<BR>
-------------------------------------------------------------<BR>
e-mail: ruslan@paradigmasoft.com<BR>
web: http://www.paradigmasoft.com<BR>
<BR>
To subscribe to the Valentina mail list go to:<BR>
http://lists.macserve.net/mailman/listinfo/valentina<BR>
-------------------------------------------------------------<BR>
</FONT>
</BODY>
</HTML>