[V4MD] Equivalent of V12's WordStarts operator?

Ruslan Zasukhin sunshine at public.kherson.ua
Fri Sep 26 11:32:05 CDT 2008


On 9/26/08 7:09 PM, "Irv Kalb" <Irv at furrypants.com> wrote:

Hi Irv,

> Here's my question for the day ...
> 
> I'm translating code from a V12 driven application to Valentina.  In
> implementing a big glossary search, I used V12's 'WordStarts'
> operator in a SELECT statement.  I'm looking to see if there is
> anything that is equivalent in the Valentina world.  Here's the
> definition of WordStarts from the V12 documentation:
> 
> ----------------------------------
> The "wordStarts" operator can be used only with fields of type string
> (including
> custom string types) with defined full-indexes.  It locates records
> that contain words
> that fully or partially match the value specified to mSetCriteria.
> Example:
> mSetCriteria(gTable, "description", "wordStarts", "ham")
> sets records for selection containing descriptions such as "Gigantic
> hamburger with
> fries" and "The greatest hammer in the world". It does not find
> records containing
> descriptions such as "Champion" or "Gotham City" because the words in these
> records don't start with the sub-string "ham".
> Since "wordStarts" operates on full-indexes, searching is performed
> very quickly.
> --------------------------------------------------
> 
> I see that there is a 'findStartsWith', but it looks like that refers
> to just the beginning of the field.  Is there any operator that will
> look through the entire contents of a field, looking for a match on
> the beginnings of ANY word in the field?

1) to get this working you need field VarChar or TEXT to be marked as
IndexByWords.  TEXT field actually is marked in this way on default.

As result Valentina will build for field special index by words.


2) Now searches as 

    WHERE left(fld,3) = 'ham'

Will do what you want. Valentina will use index to find all WORDS that sart
with ham.


3) Also you can use
    WHERE fld LIKE 'ham%'

Valentina engine also will see that you want find START WITH strings,
And self will use INDEX By Words if it exists.

4) also exists RegEX way.

    this is just very powerful way, it can be not indexed,
    but you can define just any expression by complexity.
    
 


-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list