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
