Hi, Min,

FastBit does not currently support the operator 'like'.  It has been 
mostly used with numerical values.  For string values, the only 
expression supported is equality test.

Assuming you are still interested, here is a quick description of how 
FastBit handles the following statement

select * from table where col1 < 1.5

Given the basic bitmap index, where each distinct value has its own 
bitmap.  when FastBit sees that col1 is involved, it will load the 
metadata of the index corresponding to col1.  Using the metadata, it 
can figure out which bitmaps needs to be ORed together.  Let's say 
col1 are floating-point values, and there are only three values less 
than 1.5: 0, 0.5 and 1, then the bitmaps corresponding to these three 
values marks all the rows that satisfy the condition 'col1 < 1.5.' 
FastBit needs to perform bitwise OR on these three bitmaps.  In this 
process, only the necessary bitmaps are read into memory from disk.

If you are interested in more information about how bitmap works in 
general, please take a look at 
<http://en.wikipedia.org/wiki/Bitmap_index>.

Two fairly accessible writeups about FastBit are available at 
<http://ascr-discovery.science.doe.gov/genealogy/fastbit_print.html>
and <http://www.scidacreview.org/0904/html/fastbit.html>.

John


On 10/28/2009 11:08 PM, Min Zhou wrote:
> Hi guys,
> 
> if I have a table with 5 columns(col1, col2 ... col5),  they will be
> splitted into 5 files, and  col1 be indexed by fastbit.
> can you describe how fastbit do such a query like
> 
> select * from tbl where col1 like '%xyz%'
> 
> I guess fastbit will load bitmaps in memory,  fetch the hits by
> bitmaps, I don't know how fastbit output other columns.
> 
> 
> Regards,
> Min
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to