Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. Remove a noise word in a SQL Server 2008 database

Remove a noise word in a SQL Server 2008 database

Scheduled Pinned Locked Moved Database
databasequestionsql-serversysadmintutorial
9 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    Fernando A Gomez F
    wrote on last edited by
    #1

    Hello all. I created a DB with a single table, with two columns enabled for full-text search. Everything works fine. However, whenever I lookup for a word ("salud", with means "health" in Spanish), it throws no results:

    select id, vision, age, gender, [state], tier1
    from visions
    where contains(tier1, 'Salud')

    Frustrated with this, I started looking on the causes. I came across an article that suggested to run a parse on the word, and so I did:

    SELECT * FROM sys.dm_fts_parser (' "Salud" ', 3082, 0, 0)

    This returned the following record:

    0x00730061006C00750064 1 0 1 Noise Word salud 0 Salud

    So, to my dismay, "salud" is a Noise Word. I've been trying to search how to stop "salud" from being a noise word, but all I find is reference to some noisees files, which I'm unable to find in my SQL Server 2008 installation. Thus my question: does anybody know where can I remove "salud" from being a noise word? Any clue on this matter will be reaaaally appreciated! Thanks in advance. Best regards.

    B L 3 Replies Last reply
    0
    • F Fernando A Gomez F

      Hello all. I created a DB with a single table, with two columns enabled for full-text search. Everything works fine. However, whenever I lookup for a word ("salud", with means "health" in Spanish), it throws no results:

      select id, vision, age, gender, [state], tier1
      from visions
      where contains(tier1, 'Salud')

      Frustrated with this, I started looking on the causes. I came across an article that suggested to run a parse on the word, and so I did:

      SELECT * FROM sys.dm_fts_parser (' "Salud" ', 3082, 0, 0)

      This returned the following record:

      0x00730061006C00750064 1 0 1 Noise Word salud 0 Salud

      So, to my dismay, "salud" is a Noise Word. I've been trying to search how to stop "salud" from being a noise word, but all I find is reference to some noisees files, which I'm unable to find in my SQL Server 2008 installation. Thus my question: does anybody know where can I remove "salud" from being a noise word? Any clue on this matter will be reaaaally appreciated! Thanks in advance. Best regards.

      B Offline
      B Offline
      Bernhard Hiller
      wrote on last edited by
      #2

      The "stop words" are in a system view.

      SELECT [stopword], [language_id]
      FROM [master].[sys].[fulltext_system_stopwords]
      where language_id=3082

      I tried a DELETE query:

      delete
      FROM [master].[sys].[fulltext_system_stopwords]
      where [stopword]='salud' and language_id=3082

      but that caused an exception: "Ad hoc updates to system catalogs are not allowed" I do not have further ideas...

      F 1 Reply Last reply
      0
      • F Fernando A Gomez F

        Hello all. I created a DB with a single table, with two columns enabled for full-text search. Everything works fine. However, whenever I lookup for a word ("salud", with means "health" in Spanish), it throws no results:

        select id, vision, age, gender, [state], tier1
        from visions
        where contains(tier1, 'Salud')

        Frustrated with this, I started looking on the causes. I came across an article that suggested to run a parse on the word, and so I did:

        SELECT * FROM sys.dm_fts_parser (' "Salud" ', 3082, 0, 0)

        This returned the following record:

        0x00730061006C00750064 1 0 1 Noise Word salud 0 Salud

        So, to my dismay, "salud" is a Noise Word. I've been trying to search how to stop "salud" from being a noise word, but all I find is reference to some noisees files, which I'm unable to find in my SQL Server 2008 installation. Thus my question: does anybody know where can I remove "salud" from being a noise word? Any clue on this matter will be reaaaally appreciated! Thanks in advance. Best regards.

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        Those are stored as plain text-files :) See MSDN[^].

        Bastard Programmer from Hell :suss:

        F 1 Reply Last reply
        0
        • F Fernando A Gomez F

          Hello all. I created a DB with a single table, with two columns enabled for full-text search. Everything works fine. However, whenever I lookup for a word ("salud", with means "health" in Spanish), it throws no results:

          select id, vision, age, gender, [state], tier1
          from visions
          where contains(tier1, 'Salud')

          Frustrated with this, I started looking on the causes. I came across an article that suggested to run a parse on the word, and so I did:

          SELECT * FROM sys.dm_fts_parser (' "Salud" ', 3082, 0, 0)

          This returned the following record:

          0x00730061006C00750064 1 0 1 Noise Word salud 0 Salud

          So, to my dismay, "salud" is a Noise Word. I've been trying to search how to stop "salud" from being a noise word, but all I find is reference to some noisees files, which I'm unable to find in my SQL Server 2008 installation. Thus my question: does anybody know where can I remove "salud" from being a noise word? Any clue on this matter will be reaaaally appreciated! Thanks in advance. Best regards.

          B Offline
          B Offline
          Bernhard Hiller
          wrote on last edited by
          #4

          Eddy Vluggen supplied an important hint - but the version is different. Look at http://msdn.microsoft.com/en-us/library/cc280871%28v=sql.100%29.aspx[^]

          F 2 Replies Last reply
          0
          • B Bernhard Hiller

            The "stop words" are in a system view.

            SELECT [stopword], [language_id]
            FROM [master].[sys].[fulltext_system_stopwords]
            where language_id=3082

            I tried a DELETE query:

            delete
            FROM [master].[sys].[fulltext_system_stopwords]
            where [stopword]='salud' and language_id=3082

            but that caused an exception: "Ad hoc updates to system catalogs are not allowed" I do not have further ideas...

            F Offline
            F Offline
            Fernando A Gomez F
            wrote on last edited by
            #5

            Hi, thanks so much for your help! I finally managed to remove the noise words. It seems that MSSQLSVR2K8R2 (Uf!) has hardcoded somewhere (apparently some "resource" database, whatever that is) the noise words for each language. So, what I did was: 1.- Create my own stoplist[^] 2.- Through the SQL Management Studio, open the full-text index properties and then select the recently created stoplist rather than the default. 3.- Alter[^] the stoplist and drop the noise word. 4.- Re-index the full-text index. Thanks again for your help! :)

            1 Reply Last reply
            0
            • L Lost User

              Those are stored as plain text-files :) See MSDN[^].

              Bastard Programmer from Hell :suss:

              F Offline
              F Offline
              Fernando A Gomez F
              wrote on last edited by
              #6

              Yeh, tried looking for those files, yet didn't find 'em on MSSQLSVR 2008. I found the Thresaurus, mind you, but not the words. I read in MSDN that in 2008 they were stored in the "Resources" database, yet I wasn't able to find 'em. Thanks for the insight!

              L 1 Reply Last reply
              0
              • B Bernhard Hiller

                Eddy Vluggen supplied an important hint - but the version is different. Look at http://msdn.microsoft.com/en-us/library/cc280871%28v=sql.100%29.aspx[^]

                F Offline
                F Offline
                Fernando A Gomez F
                wrote on last edited by
                #7

                Ah, yes, that did it! Find 'em yesterday, very late at night, when I was cursing the DB builders. :laugh: Thanks, cheers!

                1 Reply Last reply
                0
                • B Bernhard Hiller

                  Eddy Vluggen supplied an important hint - but the version is different. Look at http://msdn.microsoft.com/en-us/library/cc280871%28v=sql.100%29.aspx[^]

                  F Offline
                  F Offline
                  Fernando A Gomez F
                  wrote on last edited by
                  #8

                  Why the heck is "salud" (health) a noise word, escapes my comprehension though.

                  1 Reply Last reply
                  0
                  • F Fernando A Gomez F

                    Yeh, tried looking for those files, yet didn't find 'em on MSSQLSVR 2008. I found the Thresaurus, mind you, but not the words. I read in MSDN that in 2008 they were stored in the "Resources" database, yet I wasn't able to find 'em. Thanks for the insight!

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #9

                    Fernando A. Gomez F. wrote:

                    MSSQLSVR 2008

                    I should have read more carefully.. As I read, you did find 'em by now :)

                    Bastard Programmer from Hell :suss:

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups