|
sql
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
FT Index - Avoid Noise Words
doesn't play well with the Noise Words and I am wondering if there is a way that I can avoid the use of the Noise Words for a specific query without modifying the Noise Word file. Using Adventureworks as an example, we would have data in the DocumentSummary column of the Production.Document table that would include "Node A" in the text string. Due to the fact that "A" is part of the noise word list (and should be) the FT Index will not pull the proper record set and we are forced to use a LIKE statement. select * from AdventureWorks.Production.Document where contains(DocumentSummary, 'Node A') The above example would not return the proper records. select * from AdventureWorks.Production.Document where DocumentSummary like '%Node A%' While this one does. As things stand right now the LIKE performs fine BUT the data is increasing and we want to be able to use the FT Index search capabilities. Any thoughts, comments, suggestions would be greatly appreciated. -- David David,
The Noise Words actually limit which words are indexed. So, since "A" was not indexed, there is no full-text query method to circumvent that decision. Likewise, if you change the noise word list contents, you need to reindex the data in order to put that new list into operation. It would be easier to do it the other way around. Use a Noise word list with a single blank in it, thus indexing all words. For queries where you want noise words ignored, use a list of noise words to remove those from your query before submitting the request. FWIW, RLF Show quoteHide quote "dbenoit" <dben***@discussions.microsoft.com> wrote in message news:61531FDD-7368-40AE-8588-6E73230A88F4@microsoft.com... > We have a Full Text index which works great but we have some data which > doesn't play well with the Noise Words and I am wondering if there is a > way > that I can avoid the use of the Noise Words for a specific query without > modifying the Noise Word file. > > Using Adventureworks as an example, we would have data in the > DocumentSummary column of the Production.Document table that would include > "Node A" in the text string. Due to the fact that "A" is part of the noise > word list (and should be) the FT Index will not pull the proper record set > and we are forced to use a LIKE statement. > > select * from AdventureWorks.Production.Document > where contains(DocumentSummary, 'Node A') > > The above example would not return the proper records. > > select * from AdventureWorks.Production.Document > where DocumentSummary like '%Node A%' > > While this one does. > > As things stand right now the LIKE performs fine BUT the data is > increasing > and we want to be able to use the FT Index search capabilities. > > Any thoughts, comments, suggestions would be greatly appreciated. > > -- > David Thanks Russell! I figured that something like what you were suggesting would
be the only option. Greatly appreciate the feedback! -- Show quoteHide quoteDavid "Russell Fields" wrote: > David, > > The Noise Words actually limit which words are indexed. So, since "A" was > not indexed, there is no full-text query method to circumvent that decision. > Likewise, if you change the noise word list contents, you need to reindex > the data in order to put that new list into operation. > > It would be easier to do it the other way around. Use a Noise word list > with a single blank in it, thus indexing all words. For queries where you > want noise words ignored, use a list of noise words to remove those from > your query before submitting the request. > > FWIW, > RLF > > > "dbenoit" <dben***@discussions.microsoft.com> wrote in message > news:61531FDD-7368-40AE-8588-6E73230A88F4@microsoft.com... > > We have a Full Text index which works great but we have some data which > > doesn't play well with the Noise Words and I am wondering if there is a > > way > > that I can avoid the use of the Noise Words for a specific query without > > modifying the Noise Word file. > > > > Using Adventureworks as an example, we would have data in the > > DocumentSummary column of the Production.Document table that would include > > "Node A" in the text string. Due to the fact that "A" is part of the noise > > word list (and should be) the FT Index will not pull the proper record set > > and we are forced to use a LIKE statement. > > > > select * from AdventureWorks.Production.Document > > where contains(DocumentSummary, 'Node A') > > > > The above example would not return the proper records. > > > > select * from AdventureWorks.Production.Document > > where DocumentSummary like '%Node A%' > > > > While this one does. > > > > As things stand right now the LIKE performs fine BUT the data is > > increasing > > and we want to be able to use the FT Index search capabilities. > > > > Any thoughts, comments, suggestions would be greatly appreciated. > > > > -- > > David > >
Other interesting topics
Cursor Help
Disaster Recovery Options Can a trigger be inadvertantly disabled? SQL SErver 64 bit use of memory The time stamp counter of CPU on scheduler id X is not synchronized with other CPUs Problem in sysdatabases DBCC Checkdb's torn page / checksum validation SQL server 2000 and Access project how to ignore error.... Forgot to detach? |
|||||||||||||||||||||||