Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread TEXT FILTER INDEX with Partial world
Thu, May 4 2006 6:48 AMPermanent Link

"Antony Miller"
I

i need a FAST search in a very big database ( 1 field - string )

i try Text Filter Index  ( Filter = TEXTSEARCH(xxx)  ) , NICE.

but i't search only complete world ( space delimited )

i need search partial word, too.

IN FAST MODE.

like this :

procedure TForm1.tblTextFilterRecord(DataSet: TDataSet;  var Accept:
Boolean);
begin

if Pos(Edit1.Text,DataSet.FieldByName('NOTE').AsString) = 0 then
  begin
  accept := False;
  end;

end;

Are there any mode ?


Dbisam 4.2x , Delphi7

Thu, May 4 2006 7:21 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Antony


If I understand the question correctly TEXTSEARCH does do a partial word match like 'match*' will find match, matches, matching etc. It can only be used at the end of a word. There's no equivalent of 'mat??es' or '*es'


Roy Lambert
Thu, May 4 2006 8:50 AMPermanent Link

"Antony Miller"
>>  There's no equivalent of  '*es'

This is a problem for me.



Can i have a index for 2-3 chars ( and more ) ?


no index of world , but .. index of single consegutive char .

Thu, May 4 2006 8:52 AMPermanent Link

"Antony Miller"
Add :

i need this  :   *es*


tnx.

Thu, May 4 2006 9:46 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Antony


There may be addons out there that do it but DBISAM doesn't. You could use the OnTextIndexFilter event to build a string containing all the 2+ character combinations but 1) it'd be slow and 2) the full text index would be massive.

Roy Lambert
Thu, May 4 2006 10:21 AMPermanent Link

"Antony Miller"

> There may be addons out there that do it but DBISAM doesn't.

Which addon ? name ?


tnx. Wink

Thu, May 4 2006 11:21 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Antony



No idea that's why I said "may"

Roy Lambert
Thu, May 4 2006 4:31 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Antony,

<< i need a FAST search in a very big database ( 1 field - string )

i try Text Filter Index  ( Filter = TEXTSEARCH(xxx)  ) , NICE.

but i't search only complete world ( space delimited )

i need search partial word, too. >>

The only way to do what you would want is as Roy indicated - using an
TDBISAMEngine.OnTextIndexFilter event handler to create all of the various
permutations of the words being indexed in order to allow for such a search.
The only other way is slow and involves using a filter or query like this:

SELECT *
FROM MyTable
WHERE MyTable.MyField LIKE '%es%';

--
Tim Young
Elevate Software
www.elevatesoft.com

Image