Monday, February 20, 2012

MS-SQL Search by keyword performance

Hello experts,
I'm a newbie here and do not know if this is the right place to ask this question, or if there are some one else already solving this from elsewhere. if so, please accept my appologies.
My problem is that, i do not know what is the right solution to dealing with the search module which will need to be implemented in my application.
e.g: i have a master table is Order with the following fields
(Order_id, Product_Id, Order_Number, Cus_name, Cus_address)
Product(Product_id, Category_Id, ProductName, Price)
Category(Category_id, Description)
My Search support for user to enter a string, once hit on search, system would need to returned all matched Order for the search string.
example: if i enter [Toy], then system will return all Order which:
- The Cus_name contains [toy] or Cus_address contains [toy] or productname contain [toy] or category description contains [toy]
actually, the real senarios might be more complex than this sample and the database is a huge db which might contains mililion of records. If i doing a standard SQL join to perform the SQL selection, i would afraid about the performance of the whole system.
Is Full-text index search could be applied for this or is there any other solution?
Thanks for your helps!
Doan
--
Message posted via http://www.sqlmonster.comThis is exactly what full-text search is intended to do... Setting it up is
documented in books on line... after you have indexed all of the fields, you
can to a multi column search ie..
select * from Orders where contains(*,'Toy')
The * in the contains clause says to search ALL indexed text columns
have fun
--
Wayne Snyder, MCDBA, SQL Server MVP
Mariner, Charlotte, NC
www.mariner-usa.com
(Please respond only to the newsgroups.)
I support the Professional Association of SQL Server (PASS) and it's
community of SQL Server professionals.
www.sqlpass.org
"Doan Ly via SQLMonster.com" <forum@.SQLMonster.com> wrote in message
news:cb1e2d67657544229ad2c2b16d7513ea@.SQLMonster.com...
> Hello experts,
> I'm a newbie here and do not know if this is the right place to ask this
question, or if there are some one else already solving this from elsewhere.
if so, please accept my appologies.
> My problem is that, i do not know what is the right solution to dealing
with the search module which will need to be implemented in my application.
> e.g: i have a master table is Order with the following fields
> (Order_id, Product_Id, Order_Number, Cus_name, Cus_address)
> Product(Product_id, Category_Id, ProductName, Price)
> Category(Category_id, Description)
> My Search support for user to enter a string, once hit on search, system
would need to returned all matched Order for the search string.
> example: if i enter [Toy], then system will return all Order which:
> - The Cus_name contains [toy] or Cus_address contains [toy] or productname
contain [toy] or category description contains [toy]
> actually, the real senarios might be more complex than this sample and the
database is a huge db which might contains mililion of records. If i doing a
standard SQL join to perform the SQL selection, i would afraid about the
performance of the whole system.
> Is Full-text index search could be applied for this or is there any other
solution?
> Thanks for your helps!
> Doan
> --
> Message posted via http://www.sqlmonster.com|||Thanks Wayne for your speedy suggest.
by the way:
>select * from Orders where contains(*,'Toy')
>The * in the contains clause says to search ALL indexed text columns
Could it also look for the matched full-text indexed fields in its child tables? (Product & Category), or need i consider some special skill here?
Thanks
Doan
--
Message posted via http://www.sqlmonster.com

No comments:

Post a Comment