显示标签为“catalog”的博文。显示所有博文
显示标签为“catalog”的博文。显示所有博文

2012年3月29日星期四

Full text stuck in a rut - error msg 7619

I have a full-text index on a production db. The catalog is currently empty. When I try to populate it, I get a message saying I must enable full text for this database. When I try to run sp_fulltext_database 'enable', I get the following message:
Server: Msg 7619, Level 16, State 1, Procedure sp_fulltext_database, Line 61
Execution of a full-text operation failed. The process cannot access the file because it is being used by another process.
Our OS team could not find any processes other than sqlserver.exe using files in the FTData dir. MSSearch is currently owned by the localsystem account, and ownership has not been changed since the SQL Server install.
I am using SQL 2000 EE. on a Windows 2000 cluster. SP3A is installed.
Has anyone else come across this error? Any advice would be appreciated!

Quote:

Originally posted by lisanova22
I have a full-text index on a production db. The catalog is currently empty. When I try to populate it, I get a message saying I must enable full text for this database. When I try to run sp_fulltext_database 'enable', I get the following message:
Server: Msg 7619, Level 16, State 1, Procedure sp_fulltext_database, Line 61
Execution of a full-text operation failed. The process cannot access the file because it is being used by another process.
Our OS team could not find any processes other than sqlserver.exe using files in the FTData dir. MSSearch is currently owned by the localsystem account, and ownership has not been changed since the SQL Server install.
I am using SQL 2000 EE. on a Windows 2000 cluster. SP3A is installed.
Has anyone else come across this error? Any advice would be appreciated!

Full Text Service not starting from EM

hello,
I have the following problem. Everything was working fine
with the full text search. I created a catalog etc... now
in EM, database->tools->"Full Text Indexing" is grayed
out. I cannot use the full text indexing with tables
(grayed out) and the full text search is marked as stopped
in the support services. Trying to start it returns a "an
instance of the service is already running" error. The
Microsoft search service is started however.
I am also able to run queries using the full text indexes
I have created, so it seems only the administration from
EM is not working.
any idea would be greatly appreciated
thank you
Benoit
Benoit,
You should checkout the following KB article "Q270671 (Q270671) PRB: Full
Text Search Menus Are Not Enabled for Local Windows NT Accounts" at
http://support.microsoft.com/default...;en-us;q270671 this should
explain the problem you are experiencing.
Regards,
John
"Benoit" <anonymous@.discussions.microsoft.com> wrote in message
news:cdae01c43958$fb582660$a101280a@.phx.gbl...
> hello,
> I have the following problem. Everything was working fine
> with the full text search. I created a catalog etc... now
> in EM, database->tools->"Full Text Indexing" is grayed
> out. I cannot use the full text indexing with tables
> (grayed out) and the full text search is marked as stopped
> in the support services. Trying to start it returns a "an
> instance of the service is already running" error. The
> Microsoft search service is started however.
> I am also able to run queries using the full text indexes
> I have created, so it seems only the administration from
> EM is not working.
> any idea would be greatly appreciated
> thank you
> Benoit
|||John thank you for your reply...
The instance of the SLQ server 2000 is running on my
computer under the localsystem account. I am connecting
with EM on my computer running the service, not from
another client computer. in EM the local server is
registered with Windows Authentication.
Isnt there a way for me to administer Full Text Search
from EM under these conditions? Seems like the most
straightforward configuration to me.
thanks again
Benoit

>--Original Message--
>Benoit,
>You should checkout the following KB article "Q270671
(Q270671) PRB: Full
>Text Search Menus Are Not Enabled for Local Windows NT
Accounts" at
>http://support.microsoft.com/default.aspx?scid=KB;en-
us;q270671 this should
>explain the problem you are experiencing.
>Regards,
>John
>
>"Benoit" <anonymous@.discussions.microsoft.com> wrote in
message[vbcol=seagreen]
>news:cdae01c43958$fb582660$a101280a@.phx.gbl...
fine[vbcol=seagreen]
now[vbcol=seagreen]
stopped[vbcol=seagreen]
a "an[vbcol=seagreen]
indexes
>
>.
>
|||You're welcome, Benoit,
If you are using the (system) LocalSystem account to start & run the
MSSQLServer service, then it should work. This is the exact configuration
I'm using on my home server and it works for me. Can you re-confirm that you
are not using a local machine account, check the EM server property security
tab and "system account" should be marked. Can you use the system stored
procedures to create and populate FT Catalogs on this server, (see SQL 2000
BOL for examples of use):
a.. sp_fulltext_database -- Initializes full-text indexing or removes all
full-text catalogs from the current database.
a.. sp_fulltext_catalog -- Creates and drops a full-text catalog.
a.. sp_fulltext_table -- Marks or unmarks a table for full-text indexing.
a.. sp_fulltext_column -- Adds columns to full-text indexes.
Regards,
John
<anonymous@.discussions.microsoft.com> wrote in message
news:d43301c439e0$21c78d40$a001280a@.phx.gbl...[vbcol=seagreen]
> John thank you for your reply...
> The instance of the SLQ server 2000 is running on my
> computer under the localsystem account. I am connecting
> with EM on my computer running the service, not from
> another client computer. in EM the local server is
> registered with Windows Authentication.
> Isnt there a way for me to administer Full Text Search
> from EM under these conditions? Seems like the most
> straightforward configuration to me.
> thanks again
> Benoit
>
> (Q270671) PRB: Full
> Accounts" at
> us;q270671 this should
> message
> fine
> now
> stopped
> a "an
> indexes
|||I find sometimes you have to right click on your SQL FTS catalog in EM, and
refresh it. Sometimes through a combination of manipulating your catalogs
you can enable your Full Text menus.
Hilary Cotter
Looking for a book on SQL Server replication?
http://www.nwsu.com/0974973602.html
"John Kane" <jt-kane@.comcast.net> wrote in message
news:eJO9aqhOEHA.3896@.TK2MSFTNGP12.phx.gbl...
> You're welcome, Benoit,
> If you are using the (system) LocalSystem account to start & run the
> MSSQLServer service, then it should work. This is the exact configuration
> I'm using on my home server and it works for me. Can you re-confirm that
you
> are not using a local machine account, check the EM server property
security
> tab and "system account" should be marked. Can you use the system stored
> procedures to create and populate FT Catalogs on this server, (see SQL
2000
> BOL for examples of use):
> a.. sp_fulltext_database -- Initializes full-text indexing or removes all
> full-text catalogs from the current database.
> a.. sp_fulltext_catalog -- Creates and drops a full-text catalog.
> a.. sp_fulltext_table -- Marks or unmarks a table for full-text indexing.
> a.. sp_fulltext_column -- Adds columns to full-text indexes.
> Regards,
> John
>
>
> <anonymous@.discussions.microsoft.com> wrote in message
> news:d43301c439e0$21c78d40$a001280a@.phx.gbl...
>
|||hello,
thank you both for your help. the system stored procedures
are working fine to create/populate catalogs but my menus
are still disabled. I have another computer with the exact
same configuration and all the menus are enabled. Ive seen
others users report the same bug but with no answer.
Guess Ill stick to the system stored procedures. Thanks
again
Benoit

>--Original Message--
>I find sometimes you have to right click on your SQL FTS
catalog in EM, and
>refresh it. Sometimes through a combination of
manipulating your catalogs[vbcol=seagreen]
>you can enable your Full Text menus.
>--
>Hilary Cotter
>Looking for a book on SQL Server replication?
>http://www.nwsu.com/0974973602.html
>
>"John Kane" <jt-kane@.comcast.net> wrote in message
>news:eJO9aqhOEHA.3896@.TK2MSFTNGP12.phx.gbl...
start & run the[vbcol=seagreen]
exact configuration[vbcol=seagreen]
you re-confirm that[vbcol=seagreen]
>you
server property[vbcol=seagreen]
>security
the system stored[vbcol=seagreen]
server, (see SQL[vbcol=seagreen]
>2000
indexing or removes all[vbcol=seagreen]
text catalog.[vbcol=seagreen]
full-text indexing.[vbcol=seagreen]
indexes.[vbcol=seagreen]
connecting[vbcol=seagreen]
NT[vbcol=seagreen]
in[vbcol=seagreen]
working[vbcol=seagreen]
etc...[vbcol=seagreen]
grayed[vbcol=seagreen]
tables[vbcol=seagreen]
The[vbcol=seagreen]
administration from
>
>.
>
|||I ran into this as well. I had my SQL Server registered in EM as (local).
I deleted the registration, and re-registered it as the server name and
everything worked.
Brien King
"Benoit" <anonymous@.discussions.microsoft.com> wrote in message
news:cdae01c43958$fb582660$a101280a@.phx.gbl...
> hello,
> I have the following problem. Everything was working fine
> with the full text search. I created a catalog etc... now
> in EM, database->tools->"Full Text Indexing" is grayed
> out. I cannot use the full text indexing with tables
> (grayed out) and the full text search is marked as stopped
> in the support services. Trying to start it returns a "an
> instance of the service is already running" error. The
> Microsoft search service is started however.
> I am also able to run queries using the full text indexes
> I have created, so it seems only the administration from
> EM is not working.
> any idea would be greatly appreciated
> thank you
> Benoit

full text searching...

I am working on a system where we wish toc reat a full text catalog in sql server 2000. I created a test catalog and started a 'full population' but it failed. After several attempts I restarted the 'Mircosoft Search' service and it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The default values are being used. You may have to copy the property mapping file from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full text catalogs in sql server 2000. I have been able from google to find the following MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql installtion on the 'C:' drive with the log and data files fdor the database seperated oput onto to seperate physical drives
Cheers
Ollie Riches
I think this kb article is the best choice for you.
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Ollie Riches" <ollie.riches@.phoneanalyser.net> wrote in message
news:eIl646eTGHA.424@.TK2MSFTNGP12.phx.gbl...
I am working on a system where we wish toc reat a full text catalog in sql
server 2000. I created a test catalog and started a 'full population' but it
failed. After several attempts I restarted the 'Mircosoft Search' service
and it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The
default values are being used. You may have to copy the property mapping
file from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full
text catalogs in sql server 2000. I have been able from google to find the
following MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql
installtion on the 'C:' drive with the log and data files fdor the database
seperated oput onto to seperate physical drives
Cheers
Ollie Riches

full text searching...

I am working on a system where we wish toc reat a full text catalog in sql server 2000. I created a test catalog and started a 'full population' but it failed. After several attempts I restarted the 'Mircosoft Search' service and it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The default values are being used. You may have to copy the property mapping file from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full text catalogs in sql server 2000. I have been able from google to find the following MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql installtion on the 'C:' drive with the log and data files fdor the database seperated oput onto to seperate physical drives
Cheers
Ollie Riches
I think this kb article is the best choice for you.
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Ollie Riches" <ollie.riches@.phoneanalyser.net> wrote in message
news:eIl646eTGHA.424@.TK2MSFTNGP12.phx.gbl...
I am working on a system where we wish toc reat a full text catalog in sql
server 2000. I created a test catalog and started a 'full population' but it
failed. After several attempts I restarted the 'Mircosoft Search' service
and it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The
default values are being used. You may have to copy the property mapping
file from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full
text catalogs in sql server 2000. I have been able from google to find the
following MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql
installtion on the 'C:' drive with the log and data files fdor the database
seperated oput onto to seperate physical drives
Cheers
Ollie Riches

full text searching...

I am working on a system where we wish toc reat a full text catalog in sql s
erver 2000. I created a test catalog and started a 'full population' but it
failed. After several attempts I restarted the 'Mircosoft Search' service an
d it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The d
efault values are being used. You may have to copy the property mapping file
from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full te
xt catalogs in sql server 2000. I have been able from google to find the fol
lowing MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql insta
lltion on the 'C:' drive with the log and data files fdor the database seper
ated oput onto to seperate physical drives
Cheers
Ollie RichesI think this kb article is the best choice for you.
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Ollie Riches" <ollie.riches@.phoneanalyser.net> wrote in message
news:eIl646eTGHA.424@.TK2MSFTNGP12.phx.gbl...
I am working on a system where we wish toc reat a full text catalog in sql
server 2000. I created a test catalog and started a 'full population' but it
failed. After several attempts I restarted the 'Mircosoft Search' service
and it is failing with the following error:
"The Gatherer property mapping file cannot be opened. Error: 80070003. The
default values are being used. You may have to copy the property mapping
file from the setup CD, or reinstall the application".
I have little knowledge about MS seraching and the relationship with full
text catalogs in sql server 2000. I have been able from google to find the
following MS knowledge base article:
http://support.microsoft.com/?kbid=827449
Is this the best solution for my problem?
The system I am working on is not a clustered database and has the sql
installtion on the 'C:' drive with the log and data files fdor the database
seperated oput onto to seperate physical drives
Cheers
Ollie Riches

2012年3月26日星期一

Full Text Search Population Method...

Hi,
I am confused by the different method of population, of both Full Text
index and Full Text Catalog.
Currently, we are running a application (3rd party) on SQL 2000, and we
have set the Full Text indexing to be "Change Tracking" and "background
update". By having this combination, do we still need to instruct the SQL
Server to do an incremental update on both the Catalog and Indexes? If yes,
which method should I use?
TTS,
The short answer is no. You do not need to run a scheduled, i.e.. instruct
the SQL Server to do an incremental population. In the background, SQL
Server uses an internal (and un-documented) system table to gather changes
based upon the database logged changes (updates, inserts & deletes) for the
FT-enable table column changes and then pushes these changes to the FT
Catalog in near real-time performance.
However and depending upon the amount (number of rows) and the frequency
(once every minute, once ever hour, etc.) you may want to turn off "Update
Index in Background" if the amount and frequency of changes is very high,
say >50% of the FT-enable table would change. In this case, you would
disenable "Update Index in Background" and setup a scheduled Incremental
Population to handle this one time massive update. You can read more about
this in the SQL Server 2000 BOL title "Maintaining Full-Text Indexes" -
specifically, "The method you use depends on factors such as the CPU and
available memory, the amount and rate of change of data, the amount of
available disk space, and the importance of the full-text index being
current. Use these recommendations as a guide for selecting a maintenance
method".
Regards,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"tts" <tts@.discussions.microsoft.com> wrote in message
news:C120738B-E239-46F5-BF5D-CFA3F908AFA6@.microsoft.com...
> Hi,
> I am confused by the different method of population, of both Full Text
> index and Full Text Catalog.
> Currently, we are running a application (3rd party) on SQL 2000, and
we
> have set the Full Text indexing to be "Change Tracking" and "background
> update". By having this combination, do we still need to instruct the SQL
> Server to do an incremental update on both the Catalog and Indexes? If
yes,
> which method should I use?
>
|||Thanks John.
So to conclude, even though the status of the Full Text Catelog is
"IDLE", the Full Text index and Full Text Catelog will be populated with the
"Change Tracking" and "background update" configuration. And we will not have
any ways of telling whether the Full Text index and Catelog has been
populated, we can only trust that it has been populated.
"John Kane" wrote:

> TTS,
> The short answer is no. You do not need to run a scheduled, i.e.. instruct
> the SQL Server to do an incremental population. In the background, SQL
> Server uses an internal (and un-documented) system table to gather changes
> based upon the database logged changes (updates, inserts & deletes) for the
> FT-enable table column changes and then pushes these changes to the FT
> Catalog in near real-time performance.
> However and depending upon the amount (number of rows) and the frequency
> (once every minute, once ever hour, etc.) you may want to turn off "Update
> Index in Background" if the amount and frequency of changes is very high,
> say >50% of the FT-enable table would change. In this case, you would
> disenable "Update Index in Background" and setup a scheduled Incremental
> Population to handle this one time massive update. You can read more about
> this in the SQL Server 2000 BOL title "Maintaining Full-Text Indexes" -
> specifically, "The method you use depends on factors such as the CPU and
> available memory, the amount and rate of change of data, the amount of
> available disk space, and the importance of the full-text index being
> current. Use these recommendations as a guide for selecting a maintenance
> method".
> Regards,
> John
> SQL Full Text Search Blog
> http://spaces.msn.com/members/jtkane/
>
>
> "tts" <tts@.discussions.microsoft.com> wrote in message
> news:C120738B-E239-46F5-BF5D-CFA3F908AFA6@.microsoft.com...
> we
> yes,
>
>
|||Hi,
Can anybody confirm my conclusion?
"tts" wrote:
[vbcol=seagreen]
> Thanks John.
> So to conclude, even though the status of the Full Text Catelog is
> "IDLE", the Full Text index and Full Text Catelog will be populated with the
> "Change Tracking" and "background update" configuration. And we will not have
> any ways of telling whether the Full Text index and Catelog has been
> populated, we can only trust that it has been populated.
> "John Kane" wrote:
|||Hi TTS,
Sorry for the delay in replying! No, and depending upon how much content you
changed, you would see the following status values as well (from SQL 2000
BOL titles "sp_help_fulltext_catalogs" and FULLTEXTCATALOGPROPERTY)
Property Description
PopulateStatus 0 = Idle
1 = Full population in progress
2 = Paused
3 = Throttled
4 = Recovering
5 = Shutdown
6 = Incremental population in progress
7 = Building index
8 = Disk is full. Paused.
9 = Change tracking
For CT with UIiB and depending upon what was occurring, you could see
PopulateStatus values of 1, 6, 7 and 9. You can also use the
FULLTEXTCATALOGPROPERTY metadata query to get these values as well, for
example:
select
objectproperty(object_id(N'<table_name>'),N'TableF ullTextPopulateStatus')
Hope that help!
John
"tts" <tts@.discussions.microsoft.com> wrote in message
news:F8A58279-7077-4CFC-9F3F-57F60787F615@.microsoft.com...[vbcol=seagreen]
> Hi,
> Can anybody confirm my conclusion?
> "tts" wrote:
the[vbcol=seagreen]
have[vbcol=seagreen]
instruct[vbcol=seagreen]
changes[vbcol=seagreen]
for the[vbcol=seagreen]
frequency[vbcol=seagreen]
"Update[vbcol=seagreen]
high,[vbcol=seagreen]
Incremental[vbcol=seagreen]
about[vbcol=seagreen]
Indexes" -[vbcol=seagreen]
and[vbcol=seagreen]
maintenance[vbcol=seagreen]
Full Text[vbcol=seagreen]
and[vbcol=seagreen]
"background[vbcol=seagreen]
the SQL[vbcol=seagreen]
If[vbcol=seagreen]
|||Hello John,
Thanks for your explanation. I have encountered a strange situation.
The index is not populated everytime with the insertion of record.
Please correct me if I am wrong. From what I understand, if I am
using Change Tracking and Background update, the index will be updated almost
immediately, if not, when the CPU is free to do the processing. However, this
do not apply all the time. I have tested out quite a number of time, not all
the insertion will cause the population of the indexes. From what I have
tested, if the keyword has been inserted into index, then the index will be
updated. Otherwise, the keyword will not be inserted into the index. Please
advise me what I should lookup for in the population and using of Full Text
Search.
Although I have done quite a number of testing, the size and
datetime stamp of the Full Text Catalog remain the same (as of last Friday),
and the status is IDLE. So I am not sure whether the population did take
place or not.
"John Kane" wrote:

> Hi TTS,
> Sorry for the delay in replying! No, and depending upon how much content you
> changed, you would see the following status values as well (from SQL 2000
> BOL titles "sp_help_fulltext_catalogs" and FULLTEXTCATALOGPROPERTY)
> Property Description
> PopulateStatus 0 = Idle
> 1 = Full population in progress
> 2 = Paused
> 3 = Throttled
> 4 = Recovering
> 5 = Shutdown
> 6 = Incremental population in progress
> 7 = Building index
> 8 = Disk is full. Paused.
> 9 = Change tracking
>
> For CT with UIiB and depending upon what was occurring, you could see
> PopulateStatus values of 1, 6, 7 and 9. You can also use the
> FULLTEXTCATALOGPROPERTY metadata query to get these values as well, for
> example:
> select
> objectproperty(object_id(N'<table_name>'),N'TableF ullTextPopulateStatus')
> Hope that help!
> John
>
>
> "tts" <tts@.discussions.microsoft.com> wrote in message
> news:F8A58279-7077-4CFC-9F3F-57F60787F615@.microsoft.com...
> the
> have
> instruct
> changes
> for the
> frequency
> "Update
> high,
> Incremental
> about
> Indexes" -
> and
> maintenance
> Full Text
> and
> "background
> the SQL
> If
>
>
|||You're welcome, TTS,
Is it not populating every time or just some of the time? If it is the
former, then this is not only possible, but can also occur when CT & UIiB is
not enabled. The usual symptom is that the FT Catalog property indicates
that the FT Catalog only contains an item count of 1 (row count + 1) row and
a unique key count (unique non-noise word count) of 0.
If this is the case, the most likely the FT Catalog is not populating for
several reasons, but the most likely is that the MSSQLServer service account
&/or password has been changed by Win2K's Component services (or control
panel) and not via the Enterprise Manager's server security tab as this is
the only place that the security of the two services (MSSQLServer &
MSSearch) are sync'ed up.
Also, could you confirm that your server's "Microsoft Search" (mssearch.exe)
service is started & under the "system account" (LocalSystem) and not some
other account? If it is not started under the LocalSystem, please change it
to LocalSystem and stop & restart the service. See the following KB article
for more details:
277549 (Q277549) PRB: Unable to Build Full-Text Catalog After You Modify
MSSQLServer Logon Account Through [NT4.0) Control Panel [or Win2K Component
Services] at http://support.microsoft.com/default...B;EN-US;277549
Yes, your assumption is correct, but the actual *near* real-time update can
sometimes take up to 5 seconds before you can issue a SQL FTS query and see
the inserted row. This can vary to as much as 7 to 10 seconds, depending
upon the amount & frequency of updates.
Thanks,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"tts" <tts@.discussions.microsoft.com> wrote in message
news:449F08E2-2246-4393-B383-CE8779E80933@.microsoft.com...
> Hello John,
> Thanks for your explanation. I have encountered a strange
situation.
> The index is not populated everytime with the insertion of record.
> Please correct me if I am wrong. From what I understand, if I am
> using Change Tracking and Background update, the index will be updated
almost
> immediately, if not, when the CPU is free to do the processing. However,
this
> do not apply all the time. I have tested out quite a number of time, not
all
> the insertion will cause the population of the indexes. From what I have
> tested, if the keyword has been inserted into index, then the index will
be
> updated. Otherwise, the keyword will not be inserted into the index.
Please
> advise me what I should lookup for in the population and using of Full
Text
> Search.
> Although I have done quite a number of testing, the size and
> datetime stamp of the Full Text Catalog remain the same (as of last
Friday),[vbcol=seagreen]
> and the status is IDLE. So I am not sure whether the population did take
> place or not.
> "John Kane" wrote:
you[vbcol=seagreen]
2000[vbcol=seagreen]
objectproperty(object_id(N'<table_name>'),N'TableF ullTextPopulateStatus')[vbcol=seagreen]
is[vbcol=seagreen]
with[vbcol=seagreen]
not[vbcol=seagreen]
SQL[vbcol=seagreen]
deletes)[vbcol=seagreen]
the FT[vbcol=seagreen]
very[vbcol=seagreen]
would[vbcol=seagreen]
more[vbcol=seagreen]
CPU[vbcol=seagreen]
amount of[vbcol=seagreen]
being[vbcol=seagreen]
2000,[vbcol=seagreen]
instruct[vbcol=seagreen]
Indexes?[vbcol=seagreen]
|||Hello John,
Sorry, did not get back to you regarding this issue. The problem that
I have raised is because of the software bug, so the indexes are not
populated correctly.
However, this lead me to another few questions.
1) If a table is Change Tracking enabled, when we specify a "On
demand" or "Schedule" population, is it performing a Full Population? The
table does not have any date-time stamp.
2) If a full population is taking place, and there are records going
into the Indexed table, how will the FTS behave? Does that means that the FTS
will redo the full population of the index again, or it will just include the
new text, and perform a incremental population?
I am trying to determine which type of population method has the best
perfomance since there is a slight flaw in the software.
"John Kane" wrote:

> You're welcome, TTS,
> Is it not populating every time or just some of the time? If it is the
> former, then this is not only possible, but can also occur when CT & UIiB is
> not enabled. The usual symptom is that the FT Catalog property indicates
> that the FT Catalog only contains an item count of 1 (row count + 1) row and
> a unique key count (unique non-noise word count) of 0.
> If this is the case, the most likely the FT Catalog is not populating for
> several reasons, but the most likely is that the MSSQLServer service account
> &/or password has been changed by Win2K's Component services (or control
> panel) and not via the Enterprise Manager's server security tab as this is
> the only place that the security of the two services (MSSQLServer &
> MSSearch) are sync'ed up.
> Also, could you confirm that your server's "Microsoft Search" (mssearch.exe)
> service is started & under the "system account" (LocalSystem) and not some
> other account? If it is not started under the LocalSystem, please change it
> to LocalSystem and stop & restart the service. See the following KB article
> for more details:
> 277549 (Q277549) PRB: Unable to Build Full-Text Catalog After You Modify
> MSSQLServer Logon Account Through [NT4.0) Control Panel [or Win2K Component
> Services] at http://support.microsoft.com/default...B;EN-US;277549
> Yes, your assumption is correct, but the actual *near* real-time update can
> sometimes take up to 5 seconds before you can issue a SQL FTS query and see
> the inserted row. This can vary to as much as 7 to 10 seconds, depending
> upon the amount & frequency of updates.
> Thanks,
> John
> --
> SQL Full Text Search Blog
> http://spaces.msn.com/members/jtkane/
>
> "tts" <tts@.discussions.microsoft.com> wrote in message
> news:449F08E2-2246-4393-B383-CE8779E80933@.microsoft.com...
> situation.
> almost
> this
> all
> be
> Please
> Text
> Friday),
> you
> 2000
> objectproperty(object_id(N'<table_name>'),N'TableF ullTextPopulateStatus')
> is
> with
> not
> SQL
> deletes)
> the FT
> very
> would
> more
> CPU
> amount of
> being
> 2000,
> instruct
> Indexes?
>
>
|||Not to worry, TTS, as Christmas was this past weekend!
1) If a table is Change Tracking enabled, when we specify a "On demand" or
"Schedule" population, is it performing a Full Population? The table does
not have any date-time stamp.
A. Yes. Because the table does not have a timestamp column, a Full
Population is always done, even if you select an Incremental Population.
2) If a full population is taking place, and there are records going into
the Indexed table, how will the FTS behave?
A. An interesting question... I've not actually tested this, as a Full
Population removes all previous data in the FT Catalog (much like a Truncate
table in T-SQL does to a sql table's data), and then starts reading from the
SQL Table's data from the beginning. I do *suspect* that the new data will
be read from the database log and populated to the FT Catalog after Full
Population is completed, but I think this may only be true if a timestamp
column was present. You should test this yourself before making any
decisions.
Hope this helps!
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"tts" <tts@.discussions.microsoft.com> wrote in message
news:5B0EC1EA-0DA4-4A5E-B3DC-52A3F8C6C5C0@.microsoft.com...
> Hello John,
> Sorry, did not get back to you regarding this issue. The problem
that
> I have raised is because of the software bug, so the indexes are not
> populated correctly.
> However, this lead me to another few questions.
> 1) If a table is Change Tracking enabled, when we specify a "On
> demand" or "Schedule" population, is it performing a Full Population? The
> table does not have any date-time stamp.
> 2) If a full population is taking place, and there are records going
> into the Indexed table, how will the FTS behave? Does that means that the
FTS
> will redo the full population of the index again, or it will just include
the
> new text, and perform a incremental population?
> I am trying to determine which type of population method has the
best[vbcol=seagreen]
> perfomance since there is a slight flaw in the software.
> "John Kane" wrote:
UIiB is[vbcol=seagreen]
and[vbcol=seagreen]
for[vbcol=seagreen]
account[vbcol=seagreen]
is[vbcol=seagreen]
(mssearch.exe)[vbcol=seagreen]
some[vbcol=seagreen]
it[vbcol=seagreen]
article[vbcol=seagreen]
Component[vbcol=seagreen]
http://support.microsoft.com/default...B;EN-US;277549[vbcol=seagreen]
can[vbcol=seagreen]
see[vbcol=seagreen]
am[vbcol=seagreen]
However,[vbcol=seagreen]
not[vbcol=seagreen]
have[vbcol=seagreen]
will[vbcol=seagreen]
take[vbcol=seagreen]
content[vbcol=seagreen]
see[vbcol=seagreen]
for[vbcol=seagreen]
objectproperty(object_id(N'<table_name>'),N'TableF ullTextPopulateStatus')[vbcol=seagreen]
Catelog[vbcol=seagreen]
populated[vbcol=seagreen]
will[vbcol=seagreen]
been[vbcol=seagreen]
i.e..[vbcol=seagreen]
background,[vbcol=seagreen]
gather[vbcol=seagreen]
to[vbcol=seagreen]
off[vbcol=seagreen]
you[vbcol=seagreen]
read[vbcol=seagreen]
the[vbcol=seagreen]
index[vbcol=seagreen]
both[vbcol=seagreen]
SQL[vbcol=seagreen]

full text search on views?

Can we buld full text search on views? If yes, can I build a search catalog on a view that allowed both varchar and text columns?

Hi Abhi,

I've asked help for Tony Ting which is full text expert and here are his comments:

Answer is yes, but you could only build fulltext on indexed view (materialized view) and column are limited to all available in normal case but not on text/ntext/image/xml column. The later constraint is came from the current limitation that index could not be created on a indexed view w/ text/ntext/image/xml, but fulltext column need a primary index to work on.
Hope this helps.

Thanks,
Ana Elisa - MSFT

full text search on views?

Can we buld full text search on views? If yes, can I build a search catalog on a view that allowed both varchar and text columns?

Hi Abhi,

I've asked help for Tony Ting which is full text expert and here are his comments:

Answer is yes, but you could only build fulltext on indexed view (materialized view) and column are limited to all available in normal case but not on text/ntext/image/xml column. The later constraint is came from the current limitation that index could not be created on a indexed view w/ text/ntext/image/xml, but fulltext column need a primary index to work on.
Hope this helps.

Thanks,
Ana Elisa - MSFT

2012年3月22日星期四

Full text search catalog

Hi,
I am using a full-text catalog to perform search inside a 1GB table. I
have created fulltext catalog as usual methods, selected the necessary
fields for the catalog from the table. When I want to make a stress test
over the search fucntion, it deoesnt return any data if I use more then 7
concurrent connections.
I heard that, this was a problem on sql server version 7. But this is a
sql server 2000 version. And from the white paper of full text catalogs, it
says it is able to handle up to 5124 concurrent connections to a fulltext
catalog.
What would be causing this ?
PS: Computer's props: Dual P3 500 Mhz, 1GB Ram, 18 GB SCSI HDD, Win2k
Server, Sql Server 2K Standard Ed. Computer only works for sql server
processes, not other process bothers the computer.
Thanks and Best Regards.
Murtix Van Basten.
Murtix,
When you say a "1GB Table", do you mean 1GB rows or the overall size of this
table? Also, how long are you waiting for the queries to return results and
what is the expected number of results per query? SQL FT Indexing and FT
Search query performance is a function of the total number rows as well as
the expected number of rows returned. Are you using the exact SQL FTS query
in each of the 7 concurrent connection or is each query different? Could you
post an example of your SQL FTS query?
Also, what is the return value for this query: EXEC sp_fulltext_service
'resource_usage'
Regards,
John
"Murtix Van Basten" <rdagdelenjNOSPAM31@.comcastNOSPAM.net> wrote in message
news:406a219f_4@.news.athenanews.com...
> Hi,
> I am using a full-text catalog to perform search inside a 1GB table. I
> have created fulltext catalog as usual methods, selected the necessary
> fields for the catalog from the table. When I want to make a stress test
> over the search fucntion, it deoesnt return any data if I use more then 7
> concurrent connections.
> I heard that, this was a problem on sql server version 7. But this is
a
> sql server 2000 version. And from the white paper of full text catalogs,
it
> says it is able to handle up to 5124 concurrent connections to a fulltext
> catalog.
> What would be causing this ?
> PS: Computer's props: Dual P3 500 Mhz, 1GB Ram, 18 GB SCSI HDD, Win2k
> Server, Sql Server 2K Standard Ed. Computer only works for sql server
> processes, not other process bothers the computer.
> Thanks and Best Regards.
> Murtix Van Basten.
>
|||John,
the table has 784.000 rows. Table has 19 columns, and most important
column (BODY) is Long Text type. Only 5 columns are being used in the FTS
indexing. That is one of them.
when I run it as 1 concurrent user, it takes 3-5 seconds to get a
result. I expect not more than 40 results per query. It can be less or none.
I use WAS Tool to run a stress test on the web[age that triggers the query.
And I use same exact parameters for each 7 concurrent connection. When I put
8th one, the return is nothing.
You can see the webpage that triggers the FTS from:
http://www.learnasp.com/search/a.asp...glish&limit=40
The FTS query is:
SET @.statement = 'SELECT TOP ' + @.num_matches + ' ''1000'' As Rank, list_,
messageid_, M.creatstamp_, hdrfrom_, hdrsubject_' + ' FROM messages_ AS M
INNER JOIN lists_ ON M.list_ = lists_.name_ ' + ' WHERE 1=1' + @.add_pred +
@.list_security + @.lang_pred + @.order_by
-- Execute the SELECT statement.
EXEC (@.statement)
messages_ is the table. If you wanna see, I can paste the whole SP.
Regards.
Murtix Van Basten.
"John Kane" <jt-kane@.comcast.net> wrote in message
news:uALwGlsFEHA.692@.TK2MSFTNGP09.phx.gbl...
> Murtix,
> When you say a "1GB Table", do you mean 1GB rows or the overall size of
this
> table? Also, how long are you waiting for the queries to return results
and
> what is the expected number of results per query? SQL FT Indexing and FT
> Search query performance is a function of the total number rows as well as
> the expected number of rows returned. Are you using the exact SQL FTS
query
> in each of the 7 concurrent connection or is each query different? Could
you
> post an example of your SQL FTS query?
> Also, what is the return value for this query: EXEC sp_fulltext_service
> 'resource_usage'
> Regards,
> John
>
> "Murtix Van Basten" <rdagdelenjNOSPAM31@.comcastNOSPAM.net> wrote in
message
> news:406a219f_4@.news.athenanews.com...
I
7
is
> a
> it
fulltext
>
|||can you paste the entire sp here?
You aren't doing TSQL paging are you?
"Murtix Van Basten" <rdagdelenjNOSPAM31@.comcastNOSPAM.net> wrote in message
news:406a6f30_5@.news.athenanews.com...
> John,
> the table has 784.000 rows. Table has 19 columns, and most important
> column (BODY) is Long Text type. Only 5 columns are being used in the FTS
> indexing. That is one of them.
> when I run it as 1 concurrent user, it takes 3-5 seconds to get a
> result. I expect not more than 40 results per query. It can be less or
none.
> I use WAS Tool to run a stress test on the web[age that triggers the
query.
> And I use same exact parameters for each 7 concurrent connection. When I
put
> 8th one, the return is nothing.
> You can see the webpage that triggers the FTS from:
>
http://www.learnasp.com/search/a.asp...glish&limit=40
> The FTS query is:
> SET @.statement = 'SELECT TOP ' + @.num_matches + ' ''1000'' As Rank,
list_,
> messageid_, M.creatstamp_, hdrfrom_, hdrsubject_' + ' FROM messages_ AS M
> INNER JOIN lists_ ON M.list_ = lists_.name_ ' + ' WHERE 1=1' + @.add_pred
+
> @.list_security + @.lang_pred + @.order_by
> -- Execute the SELECT statement.
> EXEC (@.statement)
> messages_ is the table. If you wanna see, I can paste the whole SP.
> Regards.
> Murtix Van Basten.
>
> "John Kane" <jt-kane@.comcast.net> wrote in message
> news:uALwGlsFEHA.692@.TK2MSFTNGP09.phx.gbl...
> this
> and
as
> query
> you
sp_fulltext_service
> message
table.
> I
test
then
> 7
> is
catalogs,
> fulltext
>
|||Here is the spGeneral:
-- starts here --
CREATE PROCEDURE spGeneral
@.num_matches varchar(4),
@.additional_predicates varchar(5000) = '',
@.order_by_list varchar(500) = '',
@.list_lang varchar(255),
@.lists smallint = 0
AS
BEGIN
DECLARE
@.add_pred varchar(510),
@.lang_pred varchar(255),
@.order_by varchar(510),
@.statement varchar(8000),
@.list_security varchar(100),
@.querystart datetime,
@.queryend datetime
SET NOCOUNT ON
-- The clock is ticking
SET @.querystart = GetDate()
-- List security
IF @.lists = 1
SET @.list_security = ' AND security_ = ''closed'''
ELSE
IF @.lists = 2
SET @.list_security = ' AND security_ = ''private'''
ELSE
IF @.lists = 3
SET @.list_security = ' AND security_ IN (''closed'', ''private'')'
ELSE
IF @.lists = 4
SET @.list_security = ''
ELSE
SET @.list_security = ' AND security_ = ''open'''
-- Check if language specified
IF @.list_lang = ''
SET @.lang_pred = ''
ELSE
BEGIN
IF @.lists = 4
SET @.lang_pred = ' PrimLang_ IN (' + @.list_lang + ')'
ELSE
SET @.lang_pred = ' AND PrimLang_ IN (' + @.list_lang + ')'
END
-- Additional Predicates
IF @.additional_predicates <> ''
BEGIN
SET @.add_pred = ' AND (' + @.additional_predicates + ')'
-- Remove ambiguity
SET @.add_pred = Replace(@.add_pred, "creatstamp_", "M.creatstamp_")
END
ELSE
SET @.add_pred = ''
-- Insert ORDER BY, if needed.
IF @.order_by_list <> ''
BEGIN
SET @.order_by = ' ORDER BY ' + @.order_by_list
-- Remove ambiguity
SET @.order_by = Replace(@.order_by, "creatstamp_", "M.creatstamp_")
END
ELSE
SET @.order_by = ''
SET @.statement = 'SELECT TOP ' + @.num_matches +
' ''1000'' As Rank, list_, messageid_, M.creatstamp_, hdrfrom_,
hdrsubject_' +
' FROM messages_ AS M INNER JOIN lists_ ON M.list_ =
lists_.name_ ' +
' WHERE 1=1' + @.add_pred + @.list_security + @.lang_pred + @.order_by
-- Execute the SELECT statement.
EXEC (@.statement)
-- Time's up!
SET @.queryend = GetDate()
SELECT DateDiff(ms, @.querystart, @.queryend) As ExecTime
SET NOCOUNT OFF
END
GO
-- ends here --
Murtix Van Basten
"Hilary Cotter" <hilaryk@.att.net> wrote in message
news:ebtBRlyFEHA.3984@.TK2MSFTNGP10.phx.gbl...
> can you paste the entire sp here?
> You aren't doing TSQL paging are you?
> "Murtix Van Basten" <rdagdelenjNOSPAM31@.comcastNOSPAM.net> wrote in
message
> news:406a6f30_5@.news.athenanews.com...
FTS
> none.
> query.
> put
>
http://www.learnasp.com/search/a.asp...glish&limit=40
> list_,
M
@.add_pred
> +
of
results
FT
well
> as
Could
> sp_fulltext_service
> table.
necessary
> test
> then
this
> catalogs,
Win2k
server
>

2012年3月21日星期三

full text problem

I have created a catalog from a table that contains only english with <html> tags. When i run a query against it i get

Server: Msg 7619, Level 16, State 1, Line 1
Langauge database/cache file could not be found.

I have read that setting full text to use the neutral word breaker may solve this problem, question is "How do i set it to use the neutral word breaker"

ThanksThe following articles may be helpful:

Article q246701 (http://support.microsoft.com/default.aspx?scid=kb;EN-US;q246701)
Article q271818 (http://support.microsoft.com/default.aspx?scid=kb;EN-US;q271818)

2012年3月19日星期一

Full text newbie...

Hi, group,
Made these days some tests and not understand very clear how contains or
containstable perform the search.
The catalog was built on 2...5 columns, various scenarios.
I tried with 2 words I am sure they exists in 2 different fields, but
contains nor containstable does not return those records. I tried both
"Johny Walker" and "Johny" AND "Walker" and no succes.
Is there any syntax allowing me to find "Johny" in a field AND "Walker" in
other field, in the same record, both fields included in FT catalog?
Thank you,
Renato
Not really. Both words must be in the same column with a Contains search, a
FreeText search can look across columns.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Renato Aranghelovici" <renatoa@.rdslink.ro> wrote in message
news:OYRS%234SIGHA.3000@.TK2MSFTNGP14.phx.gbl...
> Hi, group,
> Made these days some tests and not understand very clear how contains or
> containstable perform the search.
> The catalog was built on 2...5 columns, various scenarios.
> I tried with 2 words I am sure they exists in 2 different fields, but
> contains nor containstable does not return those records. I tried both
> "Johny Walker" and "Johny" AND "Walker" and no succes.
> Is there any syntax allowing me to find "Johny" in a field AND "Walker" in
> other field, in the same record, both fields included in FT catalog?
> Thank you,
> Renato
>
|||Ok, thank you.
This responded only partially to my initial request: if I want to find all
records that contains "Johny" in any indexed field AND "Walker" in other
indexed field ( or both in the same field) is this possible with free text
search ? And how?
Thank you,
Renato
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:u1CeLYVIGHA.3348@.tk2msftngp13.phx.gbl...
> Not really. Both words must be in the same column with a Contains search,
> a FreeText search can look across columns.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
> Looking for a FAQ on Indexing Services/SQL FTS
> http://www.indexserverfaq.com
> "Renato Aranghelovici" <renatoa@.rdslink.ro> wrote in message
> news:OYRS%234SIGHA.3000@.TK2MSFTNGP14.phx.gbl...
>

Full Text Max Size?

Hi,

Does anyone have experience with Full Text catalogs on large tables? We have a full text catalog on a table with about 30 million rows. Acording to BOL, once you get over 1 million you'll need to make some adjustements. Our system works, but we randomly get the following errors with ad hoc queries. The server has 8GB of RAM and 4 3GHz processors. Does anyone have experience working with a table this big? Any suggetions as to what could cause these errors? The only thing I could find was BUG#: 469483 on MS's site, but we're not using any OR clauses

Thanks

Here's the errors...

(query)
SELECT * FROM acc_results ar
WHERE CONTAINS(finding_text, 'cell')

#1
Server: Msg 7619, Level 16, State 1, Line 1
Execution of a full-text operation failed. Not enough storage is available to process this command.


#2
Server: Msg 7342, Level 16, State 1, Line 1
Unexpected NULL value returned for column '[FULLTEXT:acc_results].KEY' from the OLE DB provider 'Full-text Search Engine'. This column cannot be NULL.
OLE DB error trace [Non-interface error: Unexpected NULL value returned for the column: ProviderName='Full-text Search Engine', TableName='[FULLTEXT:acc_results]', ColumnName='KEY'].


#3
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'Full-text Search Engine' reported an error.
[OLE/DB provider returned message: Not enough storage is available to process this command.]
OLE DB error trace [OLE/DB Provider 'Full-text Search Engine' IRowset::GetNextRows returned 0x80004005: ].just taking #1 and #3 at face value (I know nothing is what it seems), I would imagine you need more space on your hard drive.

Full Text Max Size?

Hi,
Does anyone have experience with Full Text catalogs on large tables? We
have a full text catalog on a table with about 30 million rows. Acording
to BOL, once you get over 1 million you'll need to make some
adjustements. Our system works, but often we get the following errors
with ad hoc queries. The server has 8GB of RAM and 4 3GHz processors.
Does anyone have experience working with a table this big? Any
suggetions as to what could cause these errors? The only thing I could
find was BUG#: 469483 on MS's site, but we're not using any OR clauses
Thanks
Here's the errors...
(query)
SELECT * FROM acc_results ar
WHERE CONTAINS(finding_text, 'cell')
#1
Server: Msg 7619, Level 16, State 1, Line 1
Execution of a full-text operation failed. Not enough storage is
available to process this command.
#2
Server: Msg 7342, Level 16, State 1, Line 1
Unexpected NULL value returned for column '[FULLTEXT:acc_results].KEY'
from the OLE DB provider 'Full-text Search Engine'. This column cannot
be NULL.
OLE DB error trace [Non-interface error: Unexpected NULL value returned
for the column: ProviderName='Full-text Search Engine',
TableName='[FULLTEXT:acc_results]', ColumnName='KEY'].
#3
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'Full-text Search Engine' reported an error.
[OLE/DB provider returned message: Not enough storage is available to
process this command.]
OLE DB error trace [OLE/DB Provider 'Full-text Search Engine'
IRowset::GetNextRows returned 0x80004005: ].
*** Sent via Developersdex http://www.codecomments.com ***
Don't just participate in USENET...get rewarded for it!
Not enough storage is a common OS related error - relating to available
memory I think. Can you do things like surf on this machine, map network
drives, etc? I have heard of a 35 million row SQL FTS search solution -
IIRC.
SQL FTS 2005 has been tested to 2 billion rows.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"Charlie Pyne" <cpyne@.partners.org> wrote in message
news:%23SjvpQb%23EHA.3988@.TK2MSFTNGP11.phx.gbl...
> Hi,
> Does anyone have experience with Full Text catalogs on large tables? We
> have a full text catalog on a table with about 30 million rows. Acording
> to BOL, once you get over 1 million you'll need to make some
> adjustements. Our system works, but often we get the following errors
> with ad hoc queries. The server has 8GB of RAM and 4 3GHz processors.
> Does anyone have experience working with a table this big? Any
> suggetions as to what could cause these errors? The only thing I could
> find was BUG#: 469483 on MS's site, but we're not using any OR clauses
> Thanks
> Here's the errors...
> (query)
> SELECT * FROM acc_results ar
> WHERE CONTAINS(finding_text, 'cell')
> #1
> Server: Msg 7619, Level 16, State 1, Line 1
> Execution of a full-text operation failed. Not enough storage is
> available to process this command.
>
> #2
> Server: Msg 7342, Level 16, State 1, Line 1
> Unexpected NULL value returned for column '[FULLTEXT:acc_results].KEY'
> from the OLE DB provider 'Full-text Search Engine'. This column cannot
> be NULL.
> OLE DB error trace [Non-interface error: Unexpected NULL value returned
> for the column: ProviderName='Full-text Search Engine',
> TableName='[FULLTEXT:acc_results]', ColumnName='KEY'].
>
> #3
> Server: Msg 7399, Level 16, State 1, Line 1
> OLE DB provider 'Full-text Search Engine' reported an error.
> [OLE/DB provider returned message: Not enough storage is available to
> process this command.]
> OLE DB error trace [OLE/DB Provider 'Full-text Search Engine'
> IRowset::GetNextRows returned 0x80004005: ].
>
> *** Sent via Developersdex http://www.codecomments.com ***
> Don't just participate in USENET...get rewarded for it!
|||Everything else seems to work fine. What is IIRC? I searched on it,
but got a bunch of different results back.
*** Sent via Developersdex http://www.codecomments.com ***
Don't just participate in USENET...get rewarded for it!
|||IIRC = If I Recall Correctly.
Ok, can you review your application log for events from MSSearch saying
master merge paused.
Also is this a cluster?
"Charlie Pyne" <cpyne@.partners.org> wrote in message
news:elauz0b%23EHA.3368@.TK2MSFTNGP10.phx.gbl...
> Everything else seems to work fine. What is IIRC? I searched on it,
> but got a bunch of different results back.
>
> *** Sent via Developersdex http://www.codecomments.com ***
> Don't just participate in USENET...get rewarded for it!
|||Charlie,
Yes, I do. First of all, what is the exact version of SQL Server (7.0 or
2000) and on what OS platform is it deployed? Could you post the full output
of -- SELECT @.@.version -- as this is VERY helpful information in
troubleshooting such SQL FTS performance issues!
Secondly, and depending upon what your is your SQL Server version and SP
level as well as the exact query that your are getting these errors, you may
want to checkout KB article 818883 "PRB: You may receive error 7619 when you
run a full-text query that contains many OR operators in the search string"
at http://support.microsoft.com/default...b;en-us;818883 as one of
the symptoms is error: "Not enough storage is available to complete this
operation" as this occurs on SQL Server 2000 SP3 and when your CONTAINS
query contains many logical OR operators.
However, because of the larger number of rows (30 million), in your
FT-enable table, you may have encountered additional problems related to the
Master Merge. Specifically, you should review your server's Application
Event log for "Microsoft Search" or MssCi source events - errors, warnings
AND informational for any related Master Merge paused conditions.
Furthermore, you should review the Performance Monitor (Perfmon) counters
for Microsoft Gatherer: Reason to back off, Microsoft Gatherer Projects:
Gatherer Paused Flag, and Microsoft Search Indexer Catalogs: Merge Progress
to determine if there is an existing issue with the Master Merge process.
Depending upon your reply, I can provide you with more specific
recommendations.
Thanks,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"Charlie Pyne" <cpyne@.partners.org> wrote in message
news:#SjvpQb#EHA.3988@.TK2MSFTNGP11.phx.gbl...
> Hi,
> Does anyone have experience with Full Text catalogs on large tables? We
> have a full text catalog on a table with about 30 million rows. Acording
> to BOL, once you get over 1 million you'll need to make some
> adjustements. Our system works, but often we get the following errors
> with ad hoc queries. The server has 8GB of RAM and 4 3GHz processors.
> Does anyone have experience working with a table this big? Any
> suggetions as to what could cause these errors? The only thing I could
> find was BUG#: 469483 on MS's site, but we're not using any OR clauses
> Thanks
> Here's the errors...
> (query)
> SELECT * FROM acc_results ar
> WHERE CONTAINS(finding_text, 'cell')
> #1
> Server: Msg 7619, Level 16, State 1, Line 1
> Execution of a full-text operation failed. Not enough storage is
> available to process this command.
>
> #2
> Server: Msg 7342, Level 16, State 1, Line 1
> Unexpected NULL value returned for column '[FULLTEXT:acc_results].KEY'
> from the OLE DB provider 'Full-text Search Engine'. This column cannot
> be NULL.
> OLE DB error trace [Non-interface error: Unexpected NULL value returned
> for the column: ProviderName='Full-text Search Engine',
> TableName='[FULLTEXT:acc_results]', ColumnName='KEY'].
>
> #3
> Server: Msg 7399, Level 16, State 1, Line 1
> OLE DB provider 'Full-text Search Engine' reported an error.
> [OLE/DB provider returned message: Not enough storage is available to
> process this command.]
> OLE DB error trace [OLE/DB Provider 'Full-text Search Engine'
> IRowset::GetNextRows returned 0x80004005: ].
>
> *** Sent via Developersdex http://www.codecomments.com ***
> Don't just participate in USENET...get rewarded for it!
|||Charlie,
A quick follow-up... I think you may benefit from this KB article:
303459 (Q303459) "INF: How to Improve the Performance of FTS Queries for
Large Tables" http://support.microsoft.com/?id=303459 and make changes to
the MaxPropStoreCachedSize registry key value as well as use the Top_N_Rank
parameter in all of your SQL FTS queries, per KB article: 240833 (Q240833)
"FIX: Full-Text Search Performance Improved via Support for TOP"
http://support.microsoft.com//defaul...b;EN-US;240833
Thanks,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"John Kane" <jt-kane@.comcast.net> wrote in message
news:u3WGySe#EHA.2016@.TK2MSFTNGP15.phx.gbl...
> Charlie,
> Yes, I do. First of all, what is the exact version of SQL Server (7.0 or
> 2000) and on what OS platform is it deployed? Could you post the full
output
> of -- SELECT @.@.version -- as this is VERY helpful information in
> troubleshooting such SQL FTS performance issues!
> Secondly, and depending upon what your is your SQL Server version and SP
> level as well as the exact query that your are getting these errors, you
may
> want to checkout KB article 818883 "PRB: You may receive error 7619 when
you
> run a full-text query that contains many OR operators in the search
string"
> at http://support.microsoft.com/default...b;en-us;818883 as one
of
> the symptoms is error: "Not enough storage is available to complete this
> operation" as this occurs on SQL Server 2000 SP3 and when your CONTAINS
> query contains many logical OR operators.
> However, because of the larger number of rows (30 million), in your
> FT-enable table, you may have encountered additional problems related to
the
> Master Merge. Specifically, you should review your server's Application
> Event log for "Microsoft Search" or MssCi source events - errors, warnings
> AND informational for any related Master Merge paused conditions.
> Furthermore, you should review the Performance Monitor (Perfmon) counters
> for Microsoft Gatherer: Reason to back off, Microsoft Gatherer
Projects:
> Gatherer Paused Flag, and Microsoft Search Indexer Catalogs: Merge
Progress
> to determine if there is an existing issue with the Master Merge process.
> Depending upon your reply, I can provide you with more specific
> recommendations.
> Thanks,
> John
> --
> SQL Full Text Search Blog
> http://spaces.msn.com/members/jtkane/
>
> "Charlie Pyne" <cpyne@.partners.org> wrote in message
> news:#SjvpQb#EHA.3988@.TK2MSFTNGP11.phx.gbl...
>
|||Hi John,
Thanks for the reply. I'm not at work so I can't run @.@.version at this
time, but I can tell you that this server is SQL 2000 Enterprise Edition
with SP3a on Win2k Advanced Server with SP3.
We do have the MaxPropStoreCachedSize parameter in place and currently
it is set to 2000. The size of those two files listed in the article is
> 2GB. One thing I noticed last night when testing this against our test
server, (same hardware/os/sql), is the errors don't seem to happen when
this parameter is removed. The mssearch.exe process stays around 100MB
and the query completes successfully. With this key in place, the
memory used by mssearch grows to around 1 or 1.5GB and then we get the
"not enough storage" error. Mssearch.exe then just sits there holding
that amount of ram until we stop/start the search service.
I haven't had a chance to experiment with this yet, but someone else
thought that both the /3GB and /PAE switches that are currently present
could be causing problems. SQL is configured to only use 4GB of the 8GB
total, but for some reason performance of non-full text queries take a
major hit when we remove /3GB. WE've tried making the same 4GB
available to SQL with just the /PAE switch, but it doesn't seem to work
as well.
I'll check for the event log errors that you mentioned next week.
Thanks for your help. Please let me know if you have any other ideas.
Charlie
*** Sent via Developersdex http://www.codecomments.com ***
Don't just participate in USENET...get rewarded for it!
|||You're welcome, Charlie,
When you get to work, also check the server's Application event log for
"Microsoft Search" or MssCi source events - errors, warnings AND
informational for any related Master Merge paused conditions as this where
you'll find the true cause of what is causing the MSSearch service to appear
to hang. Additionally, you may want to start with smaller numbers for
setting the MaxPropStoreCachedSize value, say 500 MB to 1000 (or 1GB) and
then test until you get the failure as tuning this parameter is not an exact
science.
No, using the /3GB and /PAE switches is not the problem as the MSSearch
service with the resource_usage level set to 5 (dedicated) can only use a
max. of 512MB of RAM, if and only if this memory is available and not used
by any other process. Furthermore, the MSSearch service cannot use the
memory above the 2Gb limit.
Regards,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"Charlie Pyne" <cpyne@.partners.org> wrote in message
news:uVSXfgj#EHA.600@.TK2MSFTNGP09.phx.gbl...
> Hi John,
> Thanks for the reply. I'm not at work so I can't run @.@.version at this
> time, but I can tell you that this server is SQL 2000 Enterprise Edition
> with SP3a on Win2k Advanced Server with SP3.
> We do have the MaxPropStoreCachedSize parameter in place and currently
> it is set to 2000. The size of those two files listed in the article is
> server, (same hardware/os/sql), is the errors don't seem to happen when
> this parameter is removed. The mssearch.exe process stays around 100MB
> and the query completes successfully. With this key in place, the
> memory used by mssearch grows to around 1 or 1.5GB and then we get the
> "not enough storage" error. Mssearch.exe then just sits there holding
> that amount of ram until we stop/start the search service.
> I haven't had a chance to experiment with this yet, but someone else
> thought that both the /3GB and /PAE switches that are currently present
> could be causing problems. SQL is configured to only use 4GB of the 8GB
> total, but for some reason performance of non-full text queries take a
> major hit when we remove /3GB. WE've tried making the same 4GB
> available to SQL with just the /PAE switch, but it doesn't seem to work
> as well.
> I'll check for the event log errors that you mentioned next week.
> Thanks for your help. Please let me know if you have any other ideas.
> Charlie
>
> *** Sent via Developersdex http://www.codecomments.com ***
> Don't just participate in USENET...get rewarded for it!
|||Hi John,
I don't see any errors related to Master Merge. I do see this error a
bunch of times during our initial full population...
The entry <MSSQL75://SQLSERVER/286302EC/00000342> in the hash map on
project <SQLServer SQL0000600005> cannot be updated. Error: 8007054e - A
description for this error could not be found.
MS had told us to set MaxPropStoreCachedSize based on the size of these
two files...
00000001.ps1 = 775MB
00000001.ps2 = 2.26GB
If I set this to 256, the problem seems to go away. With 256 set, I've
let the SELECT * query that we've been using to reproduce the error run
for about 10 minutes before I cancel it. With 2000 set, we'll get the
"not enough storage" error after about 2 minutes.
We also have the priorty of the service set to the default of 3. I
haven't found much in terms of how this should be set other than
1=background and 5=dedicated. Do you have any suggestions? This is a
system that is used by doctors to save case notes and query historical
notes using full text and standard sql queries. We'd like to maximize
the performance of full text, but we don't want to have a negative
effect on regular SQL. We'd also like to cut down on the time needed
for full & incremental rebuilds. Fulls now take 1 week and incrementals
take about 1 day. From what I've read, we should be using change
tracking. We plan on doing this as soon as we have this current problem
resolved. Any other suggestions beyond this?
Thanks for your help
Charlie
*** Sent via Developersdex http://www.codecomments.com ***
Don't just participate in USENET...get rewarded for it!
|||Hi Charlie,
With SQL Server 2000 FTS you're somewhat limited with tables of this scale.
You could try to horizontally partition the table into multiple smaller
tables (say partition on a date range or some other column specific range of
values) and the FT Index the smaller tables using separate FT Catalogs. I'd
also highly recommend that you use CONTAINSTABLE or FREETEXTTABLE with the
Top_N_Rank value (see KB article Q240833) when running FTS SELECT * queries
against the larger FT Catalog. I'd also highly recommend that you look at
SQL Server 2005 as many of these limitations go away with Yukon FTS.
If you're server has lots of RAM, you can use sp_fulltext_service
'resource_usage', 5 to set the MSSearch service to 5 (dedicated), and it
will use the max amount of RAM (512Mb), but only if the RAM is not being
used by either the OS or by SQL Server. However, this will not fix the error
caused by large *.ps* files, as does setting the MaxPropStoreCachedSize
registry key value.
Once you've resolved this issue, use Change tracking with Update Index in
background, but be aware that an automatic Incremental or Full Population
will be run when you set this feature, so the MSSearch service can re-sync
up the FT Catalog with the SQL table data.
Thanks,
John
SQL Full Text Search Blog
http://spaces.msn.com/members/jtkane/
"Charlie Pyne" <cpyne@.partners.org> wrote in message
news:OeQeKOY$EHA.4092@.TK2MSFTNGP09.phx.gbl...
> Hi John,
> I don't see any errors related to Master Merge. I do see this error a
> bunch of times during our initial full population...
> The entry <MSSQL75://SQLSERVER/286302EC/00000342> in the hash map on
> project <SQLServer SQL0000600005> cannot be updated. Error: 8007054e - A
> description for this error could not be found.
> MS had told us to set MaxPropStoreCachedSize based on the size of these
> two files...
> 00000001.ps1 = 775MB
> 00000001.ps2 = 2.26GB
> If I set this to 256, the problem seems to go away. With 256 set, I've
> let the SELECT * query that we've been using to reproduce the error run
> for about 10 minutes before I cancel it. With 2000 set, we'll get the
> "not enough storage" error after about 2 minutes.
> We also have the priorty of the service set to the default of 3. I
> haven't found much in terms of how this should be set other than
> 1=background and 5=dedicated. Do you have any suggestions? This is a
> system that is used by doctors to save case notes and query historical
> notes using full text and standard sql queries. We'd like to maximize
> the performance of full text, but we don't want to have a negative
> effect on regular SQL. We'd also like to cut down on the time needed
> for full & incremental rebuilds. Fulls now take 1 week and incrementals
> take about 1 day. From what I've read, we should be using change
> tracking. We plan on doing this as soon as we have this current problem
> resolved. Any other suggestions beyond this?
> Thanks for your help
> Charlie
>
> *** Sent via Developersdex http://www.codecomments.com ***
> Don't just participate in USENET...get rewarded for it!

Full Text Issues

Hi i am really new to full text searching, I have created a catalog using:
sp_fulltext_catalog 'textcatalog','create'

and now i want to add a table with:
sp_fulltext_table 'Product', 'create','textcatalog', 'ProductID'

where product is a table in my database and productID is the primary key to that table. The primary key cannot be null,

But i get an error:
'ProductID' is not a valid index to enforce a full-text search key. You must specify a unique, non-nullable, single-column index.

I have a feeling i have to create some sort of index but am not sure how!

Can any one point me in the right direction? I am using SQL 2000

Thanks in advance

Tuppers!

i am wondering if when setting up the table i should of declared something? should i have done something like: CONSTRAINT [ProductID] PRIMARY KEY etc?

Tuppers|||

hi figured it out! i hadnt created the primary key on the table to make the index on!! Silly me!!

Thanks for looking!

Tuppers!!

|||

I indexed the primary key and the field for full-text search but still getting the same error message. Please help out. Thanks.

blumonde

Full Text Issues

Hi i am really new to full text searching, I have created a catalog using:
sp_fulltext_catalog 'textcatalog','create'

and now i want to add a table with:
sp_fulltext_table 'Product', 'create','textcatalog', 'ProductID'

where product is a table in my database and productID is the primary key to that table. The primary key cannot be null,

But i get an error:
'ProductID' is not a valid index to enforce a full-text search key. You must specify a unique, non-nullable, single-column index.

I have a feeling i have to create some sort of index but am not sure how!

Can any one point me in the right direction? I am using SQL 2000

Thanks in advance

Tuppers!

i am wondering if when setting up the table i should of declared something? should i have done something like: CONSTRAINT [ProductID] PRIMARY KEY etc?

Tuppers|||

hi figured it out! i hadnt created the primary key on the table to make the index on!! Silly me!!

Thanks for looking!

Tuppers!!

|||

I indexed the primary key and the field for full-text search but still getting the same error message. Please help out. Thanks.

blumonde

2012年3月11日星期日

Full Text Index not working when populated from nvarchar. Bug?

Hi, I was wondering if any SQL Server gurus out there could help me...

I have a table I'm trying to apply a full text catalog to, however no results are ever returned due to the text column being cataloged being of varbinary(max) that's being populated from a converted nvarchar(max) value.

To re-create the problem quickly...

If I populate the column via
CONVERT(varbinary(max), 'test text')
then there is no problem, I get results as expected.

However if I populate the column via
CONVERT(varbinary(max), CAST('test text' as nvarchar(max)))
no results are ever returned.

Is this a bug with SQL Server 2005 Full Text Indexing? I'm happily creating full text catalogs when an nvarchar is not getting converted into a varbinary.

I'm setting the Document Type column to '.html' (I've tried changing this to '.txt' in case it was a fault with the html ifilter but the problem persists so I believe I can rule this out).

The reason I need to convert an nvarchar to varbinary is that the table holds multi-lingual text and I'm adding a html meta tag <META NAME="MS.LOCALE" CONTENT="ES"> to the beginning in order for the full text indexing word breaker to select the correct language to catalog the text with. The aim being to provide more relevant searches in users native languages (I've read a few articles that describe this technique, but it's the first time I've tried to apply it).

Any pointers / suggestions would be greatly appreciated. Cheers,
Gavin.

Below is a T-SQL script you can run to demonstrate the effect I'm experiencing...

-- Create test database
CREATE DATABASE FullTextTest
GO
USE FullTextTest
GO

-- Create test data table
CREATE TABLE TestTable
(
pk UNIQUEIDENTIFIER NOT NULL CONSTRAINT tablePK PRIMARY KEY,
varbinarycol VARBINARY(MAX),
documentExtension VARCHAR(5),
)
GO

-- The below single entry WILL BE FOUND (the text source is being entered directly)
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(), CONVERT(VARBINARY(MAX),'<META NAME="MS.LOCALE" CONTENT="EN">test entry 1'), '.html')

-- The bellow two entries below WILL NOT BE FOUND (the text source is taken from an NVARCHAR(MAX) value)
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(), CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test entry 2' AS NVARCHAR(MAX))), '.html')
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(), CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test entry 3' AS NVARCHAR(MAX))), '.html')
GO

-- Create the full text catalog
sp_fulltext_database 'enable'
GO
CREATE FULLTEXT CATALOG TEST AS DEFAULT
GO
CREATE FULLTEXT INDEX ON TestTable (varbinarycol TYPE COLUMN documentExtension LANGUAGE 1033)
KEY INDEX tablePK
GO

-- NOTE: You might need to give the catalog a chance to build before running the script below.

-- Now do a search that SHOULD RETURN 3 ROWS of data, but ONLY 1 ROW IS RETURNED
SELECT CAST(varbinarycol AS NVARCHAR(MAX)) FROM TestTable WHERE CONTAINS(varbinarycol, 'test')Varbinary is supported in FT see these links:
http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features,-part-2/ and http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/ftslesld.mspx|||Hi Satya,

I know varbinary is supported by FT, but if you run my example code you'll see it has problems when an nvarchar is being converted into varbinary. Those rows of data don't show us when you do a CONTAINS or FREETEXT search.

This is my problem as I need to take nvarchars in order allow full multi-lingual functionality support.

Regards,
Gavin.|||I've also tried adding the following extra meta tag - <META http-equiv="Content-Type" content="text/html; charset=utf-16">

But this seemed to break the Full Text Index even further. If applied to the example T-SQL I give above then even the non-nvarchar input is no longer returned:

INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(), CONVERT(VARBINARY(MAX),'<META http-equiv="Content-Type" content="text/html; charset=utf-16"><META NAME="MS.LOCALE" CONTENT="EN">test entry 1'), '.html')

Full Text Index not working when populated from nvarchar. Bug?

Hi, I was wondering if any SQL Server gurus out there could help me...
I have a table I'm trying to apply a full text catalog to, however no
results are ever returned due to the text column being cataloged being of
varbinary(max) that's being populated from a converted nvarchar(max) value.
To re-create the problem quickly...
If I populate the column via
CONVERT(varbinary(max), 'test text')
then there is no problem, I get results as expected.
However if I populate the column via
CONVERT(varbinary(max), CAST('test text' as nvarchar(max)))
no results are ever returned.
Is this a bug with SQL Server 2005 Full Text Indexing? I'm happily creating
full text catalogs when an nvarchar is not getting converted into a varbinary.
I'm setting the Document Type column to '.html' (I've tried changing this to
'.txt' in case it was a fault with the html ifilter but the problem persists
so I believe I can rule this out).
The reason I need to convert an nvarchar to varbinary is that the table
holds multi-lingual text and I'm adding a html meta tag <META
NAME="MS.LOCALE" CONTENT="ES"> to the beginning in order for the full text
indexing word breaker to select the correct language to catalog the text
with. The aim being to provide more relevant searches in users native
languages from a single table (I've read a few articles that describe this
technique, but it's the first time I've tried to apply it).
Any pointers / suggestions would be greatly appreciated. Cheers,
Gavin.
Below is a T-SQL script you can run to demonstrate the effect I'm
experiencing...
-- Create test database
CREATE DATABASE FullTextTest
GO
USE FullTextTest
GO
-- Create test data table
CREATE TABLE TestTable
(
pk UNIQUEIDENTIFIER NOT NULL CONSTRAINT tablePK PRIMARY KEY,
varbinarycol VARBINARY(MAX),
documentExtension VARCHAR(5),
)
GO
-- The below single entry WILL BE FOUND (the text source is being entered
directly)
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(),
CONVERT(VARBINARY(MAX),'<META NAME="MS.LOCALE" CONTENT="EN">test entry 1'),
'.html')
-- The bellow two entries below WILL NOT BE FOUND (the text source is taken
from an NVARCHAR(MAX) value)
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(),
CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test entry
2' AS NVARCHAR(MAX))), '.html')
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(),
CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test entry
3' AS NVARCHAR(MAX))), '.html')
GO
-- Create the full text catalog
sp_fulltext_database 'enable'
GO
CREATE FULLTEXT CATALOG TEST AS DEFAULT
GO
CREATE FULLTEXT INDEX ON TestTable (varbinarycol TYPE COLUMN
documentExtension LANGUAGE 1033)
KEY INDEX tablePK
GO
-- NOTE: You might need to give the catalog a chance to build before running
the script below.
-- Now do a search that SHOULD RETURN 3 ROWS of data, but ONLY 1 ROW IS
RETURNED
SELECT CAST(varbinarycol AS NVARCHAR(MAX)) FROM TestTable WHERE
CONTAINS(varbinarycol, 'test')
I don't believe you need to use nvarchar(max) here, varchar(max) will work.
HTML will have a code page or utf metatag in it, which the html ifilter will
understand.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"gavin" <gavin@.discussions.microsoft.com> wrote in message
news:3CDA0C57-863D-43CE-898C-B0F18DEA7A4E@.microsoft.com...
> Hi, I was wondering if any SQL Server gurus out there could help me...
> I have a table I'm trying to apply a full text catalog to, however no
> results are ever returned due to the text column being cataloged being of
> varbinary(max) that's being populated from a converted nvarchar(max)
> value.
> To re-create the problem quickly...
> If I populate the column via
> CONVERT(varbinary(max), 'test text')
> then there is no problem, I get results as expected.
> However if I populate the column via
> CONVERT(varbinary(max), CAST('test text' as nvarchar(max)))
> no results are ever returned.
> Is this a bug with SQL Server 2005 Full Text Indexing? I'm happily
> creating
> full text catalogs when an nvarchar is not getting converted into a
> varbinary.
> I'm setting the Document Type column to '.html' (I've tried changing this
> to
> '.txt' in case it was a fault with the html ifilter but the problem
> persists
> so I believe I can rule this out).
> The reason I need to convert an nvarchar to varbinary is that the table
> holds multi-lingual text and I'm adding a html meta tag <META
> NAME="MS.LOCALE" CONTENT="ES"> to the beginning in order for the full text
> indexing word breaker to select the correct language to catalog the text
> with. The aim being to provide more relevant searches in users native
> languages from a single table (I've read a few articles that describe this
> technique, but it's the first time I've tried to apply it).
> Any pointers / suggestions would be greatly appreciated. Cheers,
> Gavin.
> Below is a T-SQL script you can run to demonstrate the effect I'm
> experiencing...
> -- Create test database
> CREATE DATABASE FullTextTest
> GO
> USE FullTextTest
> GO
> -- Create test data table
> CREATE TABLE TestTable
> (
> pk UNIQUEIDENTIFIER NOT NULL CONSTRAINT tablePK PRIMARY KEY,
> varbinarycol VARBINARY(MAX),
> documentExtension VARCHAR(5),
> )
> GO
> -- The below single entry WILL BE FOUND (the text source is being entered
> directly)
> INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES
> (NEWID(),
> CONVERT(VARBINARY(MAX),'<META NAME="MS.LOCALE" CONTENT="EN">test entry
> 1'),
> '.html')
> -- The bellow two entries below WILL NOT BE FOUND (the text source is
> taken
> from an NVARCHAR(MAX) value)
> INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES
> (NEWID(),
> CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test
> entry
> 2' AS NVARCHAR(MAX))), '.html')
> INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES
> (NEWID(),
> CONVERT(VARBINARY(MAX), CAST('<META NAME="MS.LOCALE" CONTENT="EN">test
> entry
> 3' AS NVARCHAR(MAX))), '.html')
> GO
> -- Create the full text catalog
> sp_fulltext_database 'enable'
> GO
> CREATE FULLTEXT CATALOG TEST AS DEFAULT
> GO
> CREATE FULLTEXT INDEX ON TestTable (varbinarycol TYPE COLUMN
> documentExtension LANGUAGE 1033)
> KEY INDEX tablePK
> GO
> -- NOTE: You might need to give the catalog a chance to build before
> running
> the script below.
> -- Now do a search that SHOULD RETURN 3 ROWS of data, but ONLY 1 ROW IS
> RETURNED
> SELECT CAST(varbinarycol AS NVARCHAR(MAX)) FROM TestTable WHERE
> CONTAINS(varbinarycol, 'test')
|||Hi Hilary,
Thanks for the input, but I was under the impression from what I've read so
far that I would need to use nvarchar to future proof the input for the table
for when I start translating my application into Japanese, Chinese, and other
non-latin based scripts? Can store all these inputs safely in a varchar
variable? I was under the impression nvarchar had been introduced to get
around the language support limitation of varchars? I'm still on a learning
curve here so please tell me if I'm wrong?
I'm actually new to multi-lingual applications, but perhaps I should provide
more detail of what I'm trying to achieve...
I want to store multiple languages in the same table. In order to get the
full text index to use the correct word breakers on a row by row basis the
extra html meta tag is being added to the text to describe the language the
ifilter should go and fetch the relevant word breaker for. From what I
understand, this is only possible with varbinary data so I'm trying to
populate it with a passed in nvarchar parameter to my stored procedure. By
default sql server expects a single language on a table and this technique
should allow me to circumnavigate this limitation. The technique is described
in this article here -
http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
(look for the heading "Via language tags in the content being indexed" about
a quarter of the way down the article).
So at the end of the day: I'm storing plain text (in any language), adding
an html meta tag to describe the language and pretending it's html to get SQL
Server to index based on language on a row by row basis.
Regards,
Gavin.
|||Hi Hilary, just woke up a bit more and made the connection - you wrote the
article I was using as my inspiration! Nice article by the way ;)
|||I've also tried adding the following extra meta tag - <META
http-equiv="Content-Type" content="text/html; charset=utf-16">
But this seemed to break the Full Text Index even further. If applied to the
example T-SQL I give above then even the non-nvarchar input is no longer
returned:
INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES (NEWID(),
CONVERT(VARBINARY(MAX),'<META http-equiv="Content-Type" content="text/html;
charset=utf-16"><META NAME="MS.LOCALE" CONTENT="EN">test entry 1'), '.html')
|||You need to complete html document, not just the metatags. here is an
example which works for me.
CREATE DATABASE CODE_SAMPLE5
GO
USE CODE_SAMPLE5
GO
CREATE TABLE CODE_SAMPLE5
(PK INT NOT NULL IDENTITY CONSTRAINT PRIMARYKEY PRIMARY KEY,
VARBINARYCOL VARBINARY(MAX),
DOCUMENTTYPECOLUMN CHAR(4))
GO
CREATE FULLTEXT CATALOG TEST AS DEFAULT
GO
CREATE FULLTEXT INDEX ON CODE_SAMPLE5 (VARBINARYCOL TYPE COLUMN
DOCUMENTTYPECOLUMN) KEY INDEX PRIMARYKEY
GO
--The first document is an html file. We are building this on the fly. Note
the title metatag, and the
--keywords metatag.
INSERT INTO CODE_SAMPLE5(VARBINARYCOL,
DOCUMENTTYPECOLUMN)VALUES(CONVERT(VARBINARY(500),' <HTML><HEAD><TITLE>this is
the title</TITLE><meta name=''keywords''
content=''keyword''></HEAD><BODY>test</BODY></HTML>'),'.htm')
SELECT* from code_sample5 where contains(*,'test')
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"gavin" <gavin@.discussions.microsoft.com> wrote in message
news:026EDE33-B2EC-4761-AADE-A79EA13AA4F4@.microsoft.com...
> I've also tried adding the following extra meta tag - <META
> http-equiv="Content-Type" content="text/html; charset=utf-16">
> But this seemed to break the Full Text Index even further. If applied to
> the
> example T-SQL I give above then even the non-nvarchar input is no longer
> returned:
> INSERT INTO TestTable (pk, varbinarycol, documentExtension) VALUES
> (NEWID(),
> CONVERT(VARBINARY(MAX),'<META http-equiv="Content-Type"
> content="text/html;
> charset=utf-16"><META NAME="MS.LOCALE" CONTENT="EN">test entry 1'),
> '.html')
|||Hi Hilary,
I've also tried playing around with a full set of html wrapping tags as you
give in your example. I still get the same problem. If you tweak you're code
a little I believe you will experience the same problem. Convert your text
into an nvarchar before converting to varbinary and you'll see.
-- Ensure input is NVARCHAR
DECLARE @.Text nvarchar(max)
SET @.Text = '<HTML><HEAD><TITLE>this is
the title</TITLE><meta name=''keywords''
content=''keyword''></HEAD><BODY>test</BODY></HTML>'
-- Insert
INSERT INTO CODE_SAMPLE5(VARBINARYCOL,
DOCUMENTTYPECOLUMN)VALUES(CONVERT(VARBINARY(500),@. Text),'.htm')
Regards,
Gavin.
|||Have you checked the FTS crawl log for possible errors?
ML
http://milambda.blogspot.com/

Full text index deteriorating in use

Very strange situation on one of our SQL 2005 boxes.

- A Full text catalog containing a single full text index
- The index is of a single table containing a uniqueidentifier column and five varchar(max) columns, all indexed
- About 300,000 rows in the table

If I create the index and immediately run a query like this:

SELECT COUNT(*) FROM FREETEXTTABLE(tablename, columnname, 'term1 term2 term3', 5000)

I get the expected result: 5000 (there are actually about 185,000 matching rows if that same query is run without the top_n_by_rank parameter).

But then if I run the same query repeatedly over the next 10-15 minutes, the returned value decreases...4616, 3505...ending up around 507. It's like the full text index rots away before my eyes.

The database is purely read-only. We do run stored procedures against it that construct temporary tables, but nothing puts new data into this particular table. Doesn't matter whether the full-text index is set to manual or automatic repopulation. The timestamps on the index files on disk don't change. Nothing odd shows up in the Windows event logs or SQL Server logs.

I'm stumped. Any ideas?

http://www.sql-server-performance.com/full_text_search.asp

http://www.sql-server-performance.com/tb_search_optimization.asp

Full Text index catalog population error

Does anyone know what the services are involved during the SQL full
text index catalog population?
Some of my application event log errors are "Error: 80070426 - The
service has not been started.".
I know that my SQL server is running and MSsearch is running. I don't
know any other services needed for this operation.
Thank you in advance for any help!
Its MSSearch, SQL Server, SQL Server Agent (if you are scheduling your
populations).
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"discover" <hongc@.lanproinc.com> wrote in message
news:1163533752.261545.225040@.f16g2000cwb.googlegr oups.com...
> Does anyone know what the services are involved during the SQL full
> text index catalog population?
> Some of my application event log errors are "Error: 80070426 - The
> service has not been started.".
> I know that my SQL server is running and MSsearch is running. I don't
> know any other services needed for this operation.
> Thank you in advance for any help!
>