SQLite doesn't have a free text search capability - the Like and Glob
functions are not free text just simple pattern matching on the scanned
text.  Performance is very poor because there is no suitable index.

It's not a simple task to create free text searching - you have to create an
inverted index for every (or all) columns you want to search on, then you
have to find a mechanism to combine that in the SQL parser.  The inverted
index means creating a grammar parser and a language specific stemmer to
produce terms with their associated proximity info.  The same parser/stemmer
is then used to produce your search terms from the SQL statement.

I've been creating such a beast for a while with some nice results.  The
project stems from an idea of creating published DVD searchable databases of
library content, but I haven't worked on it for ages.

I was hoping to get it to a point where I could offer it up to the SQLite
community as a side project for development as an add-in to the core code.
At the moment, it's got a VB front end to a VS6.0 DLL but the idea is to
make it an extension of the sqlite3.exe.

Is there anyone out there that would like to get involved in this?  If there
is, I'll happily provide a precise of how it works, what's been done and
what there is still to do.

Steve



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
rg]On Behalf Of Jim Dodgen
Sent: 06 July 2005 03:48
To: sqlite-users@sqlite.org
Subject: Re: [sqlite] Does SQLite have a fulltext search like MySQL?


look at the glob command it works like like except uses the unix file name
globbing style of matching
not quite a grep

select * from table where a glob '[abc]foobar*';

At 06:47 PM 7/5/2005, you wrote:
>>like this?
>>select * from table where a like '%abc%';
>
>SQLite also makes it easy to write your own functions.  That way you
>can define other matching algorithms (eg Jaro-Winkler).
>
>Roger





Reply via email to