What exactly is the catalog you are searching is it a databse or external file. If it is a db lets say mysql then you could index the feilds that you want to search by. The command is fulltext for example
create table testTable
(
pk_tId int auto_increment not null,
productname varchar(20),
cost int,
details text,
primary key(pk_tId),
unique id(pk_tId),
fulltext(productname , cost, details) // this creates the indexed feilds
);
If you already have a table setup and want to index existing fields, use the ALTER TABLE command like this: ALTER TABLE myTable ADD FULLTEXT(field1, field2);
Then you may create an associated array for the results ranked from most relavant to least.
Hope that helps
Slan