Full Text Index Search

Ruslan Zasukhin sunshine at public.kherson.ua
Wed Oct 27 13:45:02 CDT 2004


> From: James Milne <james.milne at mac.com>
> Date: Wed, 27 Oct 2004 11:01:21 +0100
> 
> On 27 Oct, 2004, at 07:24, Ruslan Zasukhin wrote:
> 
>> Valentina cannot do this.
>> Valentina do have special INDEX BY WORDS for String, VarChar and TEXT
>> fields. Up to now most developers are quite satisfied wit this.
> 
> From what I can understand from other developers using IndexByWords, it
> will probably be sufficient for my current needs.
> 
>> 2) about speed of LIKE in in Valentina. Yes James, it is much faster than in
>> mySQL or others. Because of internal Valentina structure. Let me to remind:
>> 
>> If you have in mySQL table with 30 VarChar fields, then one record can be in
>> average say 30 * (15-20) = 600 bytes or more. To scan such table for LIKE
>> DBMS need load into RAM all this.
>> 
>> Valentina instead use for each column one file. So we need scan only 20 bytes
>> * N of records. For this example Valentina is expected to be 30 times faster.
> 
> OK- This makes sense!
> 
>> 3) in Valentina 2.0 we will use SOMETIMES the index file to be even more
>> faster. Example. Assume you have table in million of records. Assume that you
>> have only 10,000 different words in column. So index will contains only
>> 10,000 columns. Then using INDEX SCAN instead of COLUMN SCAN we get speed
>> even 100 times faster.
> 
> If IndexByWords is enabled in Valentina 1.0, does this not generate an
> index for the column?

Yes of course!
This feature can be done ONLY if index exists
 
> If so, does this index get used when performing a LIKE search?

No, LIKE do not use index in 1.x


>> 4) Next, in Valentina 2.0 (you can see this in beta) we have introduce new
>> special STRING SEACH functions in V4RB API. Similar as you have on OS X or
>> emails app...
> 
> Cool; that sounds like it will be a nice upgrade when it becomes
> available.
> 
>> 5) Next, in 2.0 we have implement that not only left() function use index,
>> But also right() and substr().
> 
> This is also very nice!

Yes, to add to 4) and 5) I mean that all this allow you do

    fld.FindStartsWith()
    fld.FindEndsWith()
    fld.Findcontains()

Kinds of search, and Valentina will use INDEX SCAN if it can.

 
>> So James, I think you can look on Valentina 2.0 beta.
>> I believe you will be impressed :-)
> 
> Beta sounds great!
> 
> However, I need to ship a product within a couple of months.
> 
> Will Valentina 2.0 be available for me to integrate into a shipping
> application by January?

I believe yes. 

We practically have done all new features and we go into mode of bug fixing
and docs writing.

> For the time being, I'm intending using Valentina 1 and the
> IndexByWords property, with a LIKE search. That might be sufficient for the
time-being.



-- 
Best regards,
Ruslan Zasukhin      [ I feel the need...the need for speed ]
-------------------------------------------------------------
e-mail: ruslan at paradigmasoft.com
web: http://www.paradigmasoft.com

To subscribe to the Valentina mail list go to:
http://lists.macserve.net/mailman/listinfo/valentina
-------------------------------------------------------------



More information about the Valentina mailing list