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

2012年3月29日星期四

Full Text Searching....THOUSANDS of records!

Hope I am in the correct section.
I am installing a FTS system on an existing system (that used LIKE % queries!! hahaha)
Anyway, it is working pretty well (AND FAST!) but when I type in acommon word like "damage" I get like 32,000 records. Now, theserver handles those records in about one second but the ASP page thatreturns the results takes about one MINUTE to download. When Isave the source, it is almost 12 MEGS!!
So, basically, I am streaming 12 megs across the pipe and I want to reduce that.
I would like the system to detect over maybe 500 records and cancel the search.
I have put a "TOP 500" into the search and that actually works pretty well but is there a better/smarter method?
Thanks!
cbmeeks

Your Top 500 query is good, but you could also do a SELECT COUNT SQL query first getting exactly how may records would be returned. Just replace the fields to be returned by "COUNT(*)".
// Instantiate a Command object...
SqlCommand dbCommand = new SqlCommand();
dbCommand.Connection = yourConnectionObject;
dbCommand.CommandText = "SELECT COUNT(*) " +
"FROM table-name WHERE column-name = 'some-value'";
dbCommand.CommandType = CommandType.Text;

// Execute the Command object...
int returnValue = (int)dbCommand.ExecuteScalar();
if ( returnValue > 500 )
string errorMessage = "Your query brings back " + returnValue.ToString() + " records!";
else
// Execute your regular query...
Or you could also just execute your normal query and test the number of rows in the DataTable:
if ( dataSet.Tables[0].Rows.Count > 500 )
string errorMessage = "Your query brings back " + dataSet.Tables[0].Rows.Count.ToString() + " records!";
else
// Display it...
The last could be your best bet as it only incurs one trip to the database.
NC...

|||Thanks!
What I actually did (after I posted the question) is leave the TOP 200(was 500 but I shortened it) and as I was displaying the results, Iupdated a variable. At the end of the page, I say somethinglike: "Over 200 records found, try narrowing your search".
The disadvantage is that you never really know how many records therewas (201 would be the same as 10,000) and it's at the bottom of thepage. But, I can live with it.
How much overhead would the extra SELECT COUNT method cost? Icould profile it I guess. But everyone is complaining about thespeed now.
I wrote the program 4 years ago when I was a rookie.
At least now even very common words just take a second or two to get the page. :-)
cbmeeks
|||

Run a search for CONTAINS, CONTAINSTABLE, FREETEXT and FREETEXTTABLE Microsoft proprietry implementation of ANSI SQL in SQL Server BOL (books online). Full Text is an add on to SQL Server so you must populate the Microsoft search catalog to get expected results. Hope this helps.

sql

2012年3月27日星期二

Full Text Search Setup

I am trying to setup FTS on a table in my database; the column I am
interested in FTS'ing is all image datatypes. The data in the colum is
populated via asp.net; and we store the document type as a mime type e.g.
'application/msword' as it makes it easy to get data back out from the
database.
My table has teh following columns
DocumentID UniqueIdentifier,
DocumentTypeRef int
DocumentSubject varchar(100)
DocumentValue image
DocumentDocType varchar(50)
DocumentDocType sysname -- added to use FTS would rather use vc(50) field
DocumentByteSize int
DocumentFileName varchar(100)
DocumentCreated datetime
MailMergeTemplateID uniqueidentifier
ToDoID uniqueidentifier
DocumentUploadWaiting bit
The table has 50 rows in it; in my test system. mostly word documents. I
have run teh following script to setup fts (and tried the wizard without
success)
use Activities_FTS
exec sp_fulltext_database 'enable'
exec sp_fulltext_catalog 'FTS', 'create', 'D:\\sqldata'
exec sp_fulltext_table 'tblDocuments', 'create', 'FTS', 'PK_tblDocuments'
exec sp_fulltext_column @.tabname = tblDocuments,
@.colname = DocumentValue,
@.action = 'dro',
@.Type_Colname = DocumentDocType2
exec sp_fulltext_table 'tblDocuments', 'activate'
exec sp_fulltext_table 'tblDocuments', 'start_full'
select FULLTEXTCATALOGPROPERTY('FTS', 'Populatestatus')
select * from freetexttable(tblDocuments,DocumentValue , '%%') order by
[rank] desc
This is based around the steps which worked successfully from the tutorial
on this page
http://msdn.microsoft.com/library/de...extsearch.asp.
When i run the index population check it does run for about 30 seconds; but i
cannot find out why it is not indexing the documents; or is there another
query i can use to test this. (My FTS catalog never grows above 1mb)
If you have any questions please do not hestitate to reply as i am slightly
lost now
Many thanks
Chris
Can you check what your gatherer logs report? I'm not sure if storing them
as a mime type is the best way to go.
To check your gatherer log output do this:
go to c:\program files\common files\system\mssearch\bin and copy gthrlog.vbs
to %windir% then go to your catalog location for your catalog (this should
be c:\program files\microsoft sql server\mssql\ftdata\sqlserver\gatherlogs.
Now you want to id your gatherlog for your catalog. the totally brainless
what to do this is to issue another incremental population for your catalog
and then do a dir /od. Your catalog
gather logs will then appear last in the list. The syntax is
SQLXXXXXYYYYY.?.gthr where the X is your db_id (you can determine this by
doing
this select db_id('database_name') and the YYYYYY is your catalog id, which
you can determine by doing to your database in isqlw and doing this select
id, name from syscatalogs where name ='catalog_name'.
Then with this information what you do is this (from a command prompt)
cscript gthrlog.vbs SQL0017900635.6.gthr
You will get a lot of output, but it will tell you on which row(s) the
indexer had a problem. Then what you have to do is have a look at that row
and see if you can figure out what the problem is with the data in that row
"Chris Hoare" <ChrisHoare@.discussions.microsoft.com> wrote in message
news:AB36FF24-EE13-4C7A-B8E5-E110588526CC@.microsoft.com...
>I am trying to setup FTS on a table in my database; the column I am
> interested in FTS'ing is all image datatypes. The data in the colum is
> populated via asp.net; and we store the document type as a mime type e.g.
> 'application/msword' as it makes it easy to get data back out from the
> database.
> My table has teh following columns
> DocumentID UniqueIdentifier,
> DocumentTypeRef int
> DocumentSubject varchar(100)
> DocumentValue image
> DocumentDocType varchar(50)
> DocumentDocType sysname -- added to use FTS would rather use vc(50) field
> DocumentByteSize int
> DocumentFileName varchar(100)
> DocumentCreated datetime
> MailMergeTemplateID uniqueidentifier
> ToDoID uniqueidentifier
> DocumentUploadWaiting bit
> The table has 50 rows in it; in my test system. mostly word documents. I
> have run teh following script to setup fts (and tried the wizard without
> success)
> use Activities_FTS
> exec sp_fulltext_database 'enable'
> exec sp_fulltext_catalog 'FTS', 'create', 'D:\\sqldata'
> exec sp_fulltext_table 'tblDocuments', 'create', 'FTS', 'PK_tblDocuments'
> exec sp_fulltext_column @.tabname = tblDocuments,
> @.colname = DocumentValue,
> @.action = 'dro',
> @.Type_Colname = DocumentDocType2
> exec sp_fulltext_table 'tblDocuments', 'activate'
> exec sp_fulltext_table 'tblDocuments', 'start_full'
> --
> select FULLTEXTCATALOGPROPERTY('FTS', 'Populatestatus')
> select * from freetexttable(tblDocuments,DocumentValue , '%%') order by
> [rank] desc
>
> This is based around the steps which worked successfully from the tutorial
> on this page
> http://msdn.microsoft.com/library/de...extsearch.asp.
> When i run the index population check it does run for about 30 seconds;
> but i
> cannot find out why it is not indexing the documents; or is there another
> query i can use to test this. (My FTS catalog never grows above 1mb)
> If you have any questions please do not hestitate to reply as i am
> slightly
> lost now
> Many thanks
> Chris
|||Chris,
I'm assuming that you're using SQL Server 2000 as this feature is new with
SQL Server 2000, but what OS platform is it installed on? Could you post the
full output of -- SELECT @.@.version -- as this is very helpful in
troubleshooting SQL FTS issues!
You should use the datatype of sysname (or char(3) or varchar(4)) with your
column "DocumentDocType". Could you also provide details on what values you
have populated in this column? Furthermore, how exactly did you import the
MS Word documents and what is the language of the text stored in the MS Word
documents?
Additionally, the following FREETEXTTABLE query will not return any results
as the "%" (percent) symbols are ignored by the MSSearch engine (depending
upon the OS platform):
select * from freetexttable(tblDocuments,DocumentValue , '%%') order by
[rank] desc
Instead you should use the following:
declare @.searchTerm varchar(1024)
set @.searchTerm = 'some_valid_search_word_here'
select * from freetexttable(tblDocuments, DocumentValue, @.searchTerm) order
by [rank] desc
Finally, you should review your server's Application event log for any
"Microsoft Search" or MssCi source events (warnings, informational and
errors) to determine why the initial FT Indexing is failing as this is the
only place such errors or warnings are written. Have you or anyone else
changed the SQL Server (MSSQLServer) service account &/or password via
Win2K's Component Services vs. changing this in the Enterprise Manager? If
so, then you should also review KB article 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
Regards,
John
"Chris Hoare" <ChrisHoare@.discussions.microsoft.com> wrote in message
news:AB36FF24-EE13-4C7A-B8E5-E110588526CC@.microsoft.com...
> I am trying to setup FTS on a table in my database; the column I am
> interested in FTS'ing is all image datatypes. The data in the colum is
> populated via asp.net; and we store the document type as a mime type e.g.
> 'application/msword' as it makes it easy to get data back out from the
> database.
> My table has teh following columns
> DocumentID UniqueIdentifier,
> DocumentTypeRef int
> DocumentSubject varchar(100)
> DocumentValue image
> DocumentDocType varchar(50)
> DocumentDocType sysname -- added to use FTS would rather use vc(50) field
> DocumentByteSize int
> DocumentFileName varchar(100)
> DocumentCreated datetime
> MailMergeTemplateID uniqueidentifier
> ToDoID uniqueidentifier
> DocumentUploadWaiting bit
> The table has 50 rows in it; in my test system. mostly word documents. I
> have run teh following script to setup fts (and tried the wizard without
> success)
> use Activities_FTS
> exec sp_fulltext_database 'enable'
> exec sp_fulltext_catalog 'FTS', 'create', 'D:\\sqldata'
> exec sp_fulltext_table 'tblDocuments', 'create', 'FTS', 'PK_tblDocuments'
> exec sp_fulltext_column @.tabname = tblDocuments,
> @.colname = DocumentValue,
> @.action = 'dro',
> @.Type_Colname = DocumentDocType2
> exec sp_fulltext_table 'tblDocuments', 'activate'
> exec sp_fulltext_table 'tblDocuments', 'start_full'
> --
> select FULLTEXTCATALOGPROPERTY('FTS', 'Populatestatus')
> select * from freetexttable(tblDocuments,DocumentValue , '%%') order by
> [rank] desc
>
> This is based around the steps which worked successfully from the tutorial
> on this page
>
http://msdn.microsoft.com/library/de...extsearch.asp.
> When i run the index population check it does run for about 30 seconds;
but i
> cannot find out why it is not indexing the documents; or is there another
> query i can use to test this. (My FTS catalog never grows above 1mb)
> If you have any questions please do not hestitate to reply as i am
slightly
> lost now
> Many thanks
> Chris
|||OK,
SQL Server details
Microsoft SQL Server 2000 - 8.00.760 (Intel X86)
Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation
Enterprise Edition on Windows NT 5.2 (Build 3790: )
The documents were all imported using request.file object in asp.net; and
were streamed into a stored procuedre. ASP.net can open these files again
(which is why we are storing the mime type.)
The column I referenced as DocumentDocType2 is typed as 'sysname.' this is
the column that i am referencing as Documenttype for sp_fulltext_column
I have changed the contents of the documentdoctype2 column to be both
'word' & 'msword' to be safe and run the recatalog command (Originally these
were mime types 'application/msword' or similar. In both cases this was the
result;
The application log shows the following result : Event ID 2001
"One or more documents stored in image columns with extension 'word' did not
get full-text indexed because loading the filter failed with error '0x1'.
Note: These documents will not be passed to MSSearch for indexing, and
therefore this failure will not be reflected in the end of crawl summary
statistics."
Though strangely it went on to say
"The end of crawl for project <SQLServer SQL0003400005> has been detected.
The Gatherer successfully processed 50 documents totaling 0K. It failed to
filter 0 documents. 0 URLs could not be reached or were denied access."
Finally there is an event for Master merge has completed on the index.
Thanks for your help
|||You're welcome, Chris,
Thanks for the version info as that does help, especially the fact that you
have SQL Server 2000 SP3 on Win2003! You may want to review all of the below
KB articles, and especially 326502 (Q326502) as it provides coding example
on how to use ASP.NET to load MS Word files via:
Response.AddHeader("Content-Disposition", "attachment;filename=blob.doc")
Response.ContentType = "application/msword"
The most likely cause of the Full Population failing is that only valid MS
Word (doc or .doc) files are supported when properly imported into a SQL
Server 2000 table's column defined with the IMAGE (or BLOB) datatype.
Additionally, by populating the column documentdoctype2 column with both
'word' & 'msword' will not succeed as the MSSearch service does not
recognize these as valid file extensions. See SQL Server 2000 BOL title
"Filtering Supported File Types" - specifically, "Microsoft SQL ServerT
2000 includes filters for these file extensions: .doc, .xls, .ppt, .txt, and
..htm".
I grant you that the second informational MSSearch message text was somewhat
mis-leading, but the key error "One or more documents stored in image
columns with extension 'word' did not get full-text indexed because loading
the filter failed with error '0x1'" indicates the FT Population failure
because the wrong value was placed in the documentdoctype2 column.
258038 (Q258038) HOWTO: Access and Modify SQL Server BLOB Data by Using the
ADO Stream Object
http://support.microsoft.com/?kbid=258038
309158 (Q309158) HOW TO: Read and Write BLOB Data by Using ADO.NET with C#
http://support.microsoft.com/default...b;EN-US;309158
308042 (Q308042) HOW TO: Read and Write BLOB Data by Using ADO.NET with
VB.NET
http://support.microsoft.com/default...b;EN-US;308042
326502 (Q326502) HOW TO: Read and Write BLOB Data by Using ADO.NET Through
ASP.NET
http://support.microsoft.com/?id=326502
Regards,
John
"Chris Hoare" <ChrisHoare@.discussions.microsoft.com> wrote in message
news:066C2D40-1BF5-4B26-821E-69F71F39844C@.microsoft.com...
> OK,
> SQL Server details
> Microsoft SQL Server 2000 - 8.00.760 (Intel X86)
> Dec 17 2002 14:22:05
> Copyright (c) 1988-2003 Microsoft Corporation
> Enterprise Edition on Windows NT 5.2 (Build 3790: )
> The documents were all imported using request.file object in asp.net; and
> were streamed into a stored procuedre. ASP.net can open these files again
> (which is why we are storing the mime type.)
> The column I referenced as DocumentDocType2 is typed as 'sysname.' this is
> the column that i am referencing as Documenttype for sp_fulltext_column
> I have changed the contents of the documentdoctype2 column to be both
> 'word' & 'msword' to be safe and run the recatalog command (Originally
these
> were mime types 'application/msword' or similar. In both cases this was
the
> result;
> The application log shows the following result : Event ID 2001
> "One or more documents stored in image columns with extension 'word' did
not
> get full-text indexed because loading the filter failed with error '0x1'.
> Note: These documents will not be passed to MSSearch for indexing, and
> therefore this failure will not be reflected in the end of crawl summary
> statistics."
> Though strangely it went on to say
> "The end of crawl for project <SQLServer SQL0003400005> has been detected.
> The Gatherer successfully processed 50 documents totaling 0K. It failed to
> filter 0 documents. 0 URLs could not be reached or were denied access."
> Finally there is an event for Master merge has completed on the index.
> Thanks for your help
sql

Full Text Search Resource

Can u install FTS later on? I have a clustered env. and due to failure in
registering FTS the entire install is rolling back? so perhaps I can delete
the FTS Resource and install it later...
TIA
Yes, it can be installed later, just like any other component of the SQL
Server 2005 install.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"Vai2000" <nospam@.microsoft.com> wrote in message
news:uEsn7dQIGHA.528@.TK2MSFTNGP12.phx.gbl...
> Can u install FTS later on? I have a clustered env. and due to failure in
> registering FTS the entire install is rolling back? so perhaps I can
> delete
> the FTS Resource and install it later...
> TIA
>

2012年3月26日星期一

Full Text Search Problem

This is the way FTS works. Look up "noise words" in Books Online. The noise
file (e.g. noise.dat) lists all the words that are ignored when building
full-text indexes, which means searching for them is not possible, hence the
error (which becomes a warning in SQL Server 2005).
You have two options:
1) Handle it in the client application: prevent users from issuing searches
where only the ignored words have been used. You can use the noise file to
programmatically test each search string;
2) Remove the words from the noise list (leave empty lines): this may
increase the space used by full-text catalogs significantly, so only remove
those words that you expect the users to search for.
Perhaps other frequent posters in this newsgroup have other suggestions.
ML
http://milambda.blogspot.com/
Just to piggy back off ML's comment.
I used to recommend stripping the noise words out of your query phrase,
however this will frequently lead to errors, for example a search on
"University Of California" when stripped of its noise word OF, and then the
search conducted on "University California" will miss results containing
"University of California" and "University to California".
IMHO the best approach is to empty your noise word list and replace it with
a single space or as ML points out a line feed.
Note that a FreeText search gets around this problem but may return too many
results and its speed is slower than the Contains.
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
"ML" <ML@.discussions.microsoft.com> wrote in message
news:3A90A3EB-E4BE-4E1F-A8DF-1C6AAD9653E9@.microsoft.com...
> This is the way FTS works. Look up "noise words" in Books Online. The
> noise
> file (e.g. noise.dat) lists all the words that are ignored when building
> full-text indexes, which means searching for them is not possible, hence
> the
> error (which becomes a warning in SQL Server 2005).
> You have two options:
> 1) Handle it in the client application: prevent users from issuing
> searches
> where only the ignored words have been used. You can use the noise file to
> programmatically test each search string;
> 2) Remove the words from the noise list (leave empty lines): this may
> increase the space used by full-text catalogs significantly, so only
> remove
> those words that you expect the users to search for.
> Perhaps other frequent posters in this newsgroup have other suggestions.
>
> ML
> --
> http://milambda.blogspot.com/
|||Yes, noise words aren't all bad, but search strings containing nothing but
noise words are.
ML
http://milambda.blogspot.com/
|||Hi ML, very true and well said.
Historically Noise words were intended to conserve disk space as back in the
80's when search was first starting disks were very expensive. Today they
are intended to "hide" noisy phrases from searching. For example a search on
Microsoft SQL Server is the functional equivalent of a search on SQL Server.
So you get better search efficiency by not looking for Microsoft.
Microsoft (at one time, perhaps still the case) added Microsoft to their
noise word list on their search engines for this reason. Apparently at one
time they also would add words greater than 26 letters to their noise word
list as you would be unable to search on them.
MSN search was one of the first big search engines to allow you to search on
noise words, for example a search on "the" when MSN Search first came out
would return the number on hit to the white house.
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
"ML" <ML@.discussions.microsoft.com> wrote in message
news:90F35431-C496-4273-8C9C-A79B1E9F9D20@.microsoft.com...
> Yes, noise words aren't all bad, but search strings containing nothing but
> noise words are.
>
> ML
> --
> http://milambda.blogspot.com/
|||Thanks for that info - it's essential, a must-know.
Do you by any chance have a list of characters ignored by FTS that aren't
included in noise files (e.g. punctuation marks)?
ML
http://milambda.blogspot.com/
|||Basically all alpha-numeric letters are indexed. Hyphens and capitalization
are respect in some languages. In some languages the indexing process knows
a character occurs after a single letter (i.e. C#), but doesn't index what
the character is, i.e. a search on C# will match with C$.
Currency symbols change how a number is stored in the index as well as
apparent date strings.
Abbreviations are handled differently, for example f.b.i is indexed as f, b,
and i, whereas F.B.I is indexed as FBI, and F.B.I.
IMHO I did an ok job in this article discussing language options in SQL FTS.
http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
If you are really interested in the internals of how this works with most
search engines you might want to look at the code in Lucene or Foundations
of Statistical Natural Language Processing. There is another book which is
really good on this and presents algorithms but I can't recall the name of
it right now.
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
"ML" <ML@.discussions.microsoft.com> wrote in message
news:0B5AC307-1395-4F25-8DF0-4FD2C8A2423C@.microsoft.com...
> Thanks for that info - it's essential, a must-know.
> Do you by any chance have a list of characters ignored by FTS that aren't
> included in noise files (e.g. punctuation marks)?
>
> ML
> --
> http://milambda.blogspot.com/
|||Thank you again! That article is now a permanent reference.
ML
http://milambda.blogspot.com/
sql

Full text search on TEXT field

I've a problem. I'm inexperienced about FTS.
I have a TEXT datatype field in my table and I store MS Word documents.

I want to do full text search on this TEXT datatype field.
So I build catalog and run

"Select * from table where Contains (textfield,'Yusuf')" sql in analyzer.

but null value returns. however I know the table has 3 records.

Anyway, I insert a varchar field in the table and edit my fts catalog.
and then insert 3 records in the table.than rebuild catalog and I try
"Select * from table where Contains (varcharfield,'Yusuf')"
this sql returns true records.

I know that I can FTS in TEXT datatype field but I can't. I don't know why.
I need your help.
thanks alot

YusufBesides,
I insert text in text datatype field and returs true values...

The problem occours when insert only MS Word or MS Excel etc files.

Full Text Search Language Specification

I'm using FTS on on two columns (VARCHAR) of my database. The data is exported from a MySQL database to SQL Server. When populating the database the default language was set to English (or maybe neutral?), although 90% of the records are in Dutch. Now, when I change the FTS language specification to Dutch problems occur when querying the database. When I enter typical Dutch noise words in my query like "van" or "van der" the query does not return any results. When I set it back to Neutral the queries do return results, although a drawback is that I can't query for example plural forms of words. Could this be because, when populating the database, the correct language was not set? If so, is there a way to get the Full Text Index working with Dutch in a correct manner?

Thanks in advance for your replies! Would be great to get this working in Dutch!

Rino:

When I enter typical Dutch noise words in my query like "van" or "van der" the query does not return any results

I think ignoring the noise words is the feature of FTS and we can't manipulate it.

|||

Well, It think it is not really about ignoring the noise words. The are ignored by default, am I right?

To clarify things a bit: When I use the query "Van der Vaart" and the language for the FTS column is set to Dutch it returns no results. When I set the language to Neutral it does return results. Basically all it needs to do is find results for the part of the query that says "Vaart".

ps: We are using the excellent FTS Normalizer from E. Bachtal (http://ewbi.blogs.com/develops/2007/05/normalizing_sql.html) Could that possibly cause the issue described above?

|||

Got it solved...

For some reason if I add the language code in the SQL query it works: "...WHERE CONTAINS(table, @.query, LANGUAGE 1043)..."

2012年3月19日星期一

Full text is not working for me

Hi all,

I havent found any time difference between the FTS and normal search.

I have created Full text search successfully in wrk_contact table.

CREATE UNIQUE INDEX UI_UKContact ON wrk_contact(id_contact)


CREATE FULLTEXT CATALOG contact_cat AS DEFAULT;


CREATE FULLTEXT INDEX ON wrk_contact(lastname) KEY INDEX UI_UKContact;

I have inserted 1.5 lac of records in that wrk_contact table.

I am trying to do following query

SELECT distinct *

FROM wrk_contact

WHERE CONTAINS(

lastname, '"g*"'

)

Same set of records i have inserted in wrk_contact_tmp table without creating full text search.

I was doing the following query

SELECT distinct *

FROM wrk_contact_tmp

WHERE lastname like 'g%'

I ran both queries seperatly but the execution time for the both queries are same..

Any mistake i made please help me.

Regards

gomaz

Hi Gomaz,

If using CONTAINS you are finding all the records you are looking for, then you did everything correct and FTS is working for you properly. I did not fully understand how many records has your table, 1.5 M? 1.5 thousands?

Also, how many records are returned after search for g*?

In easy queries as this one, with small number of records, the advantage in performance of FTS is not so obvious. You will notice how powerful is FTS this when you will query large amount of data (e.g: 100M) and/or using more complex criteria.

Other advantages of FTS is that it is language aware (instead of pattern based only as LIKE is). in FTS you can look for inflectional forms, Thesaurus,etc... per a given language. Algo you can use NEAR of weights in your queries, etc.... Another important advantage is that FTS supports binary data and special types as XML, etc.. while LIKE only works for text data and it always performs a SCAN of the table

Let me know please the performance you are experiencing in your scenario and we can try to see if it is expected in FTS or not.

Thanks!

|||Hi Fernando,

Thanks for your reply.
Total number of records are 150 thousands ,
In that 148 thousands records having the maching text for g*.
So my total number of records are 148000 (approx).

Is this enough or Do I need to insert more like millions of records.?
regards
GOMAZ


2012年3月7日星期三

Full text 4Gb memory

I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?
The /3GB switch refers to the Virtual Address Space for any process, not
just SQL Server. Whether or not that space is backed by physical ram is
dependent on the configuration of the server and other applications running
at any particular time. Let's say you have 2 GB of ram and a 4 GB swap
file. Then, it is possible for an application to have, say 1 GB of physical
ram for kernel mode processing, 1 GB of physical ram for a portion of the
user mode processing, then the application could use of to 2 GB of swap
space. The allocation of that swap space would be dependent on the /3GB
switch being enabled or not.
The same goes for physical ram. If you have 4 GB, then it is possible that
one application could be allocated 1 GB for kernel mode, and 3 GB for user
mode. The problem is that this is not the only application on the server.
If anything, the OS has to be running, mostly from critical sections of
physical ram.
Now, SQL Server 2K Standard Edition will only allocate a MAXIMUM of 2 GB for
the Buffer Pool. As SS2K SE is an application, it could use 1 GB to 2 GB
for the kernel mode requests, but the Buffer Pool is not the ONLY space SS
uses. So, by using the /3GB switch, you could dedicate a 2 GB Buffer Pool
and still allow up to 1 GB for kernel mode requests and 1 GB for MEM TO
LEAVE sections of memory, all backed by physical ram. To the extent that
other applications and the OS itself requires physical ram, you could still
maintain a 2 GB Buffer Pool backed by physical ram and allow the kernel mode
and MEM TO LEAVE regions to be swapped out to the page file.
So, yes, there could be benefits to using the /3GB switch.
However, you never said what OS version you were running on. Neither Win2K
SE nor Win2K3 SE support the /3GB boot.ini parameter. You have to be
running Win2K AS or Win2K3 EE or either of the Data Center Editions.
Sincerely,
Anthony Thomas

"Simon" <Simon@.cmg.noemail> wrote in message
news:07DDD724-0C42-4748-A82F-5C41DE2AD5D4@.microsoft.com...
I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?

Full text 4Gb memory

I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?The /3GB switch refers to the Virtual Address Space for any process, not
just SQL Server. Whether or not that space is backed by physical ram is
dependent on the configuration of the server and other applications running
at any particular time. Let's say you have 2 GB of ram and a 4 GB swap
file. Then, it is possible for an application to have, say 1 GB of physical
ram for kernel mode processing, 1 GB of physical ram for a portion of the
user mode processing, then the application could use of to 2 GB of swap
space. The allocation of that swap space would be dependent on the /3GB
switch being enabled or not.
The same goes for physical ram. If you have 4 GB, then it is possible that
one application could be allocated 1 GB for kernel mode, and 3 GB for user
mode. The problem is that this is not the only application on the server.
If anything, the OS has to be running, mostly from critical sections of
physical ram.
Now, SQL Server 2K Standard Edition will only allocate a MAXIMUM of 2 GB for
the Buffer Pool. As SS2K SE is an application, it could use 1 GB to 2 GB
for the kernel mode requests, but the Buffer Pool is not the ONLY space SS
uses. So, by using the /3GB switch, you could dedicate a 2 GB Buffer Pool
and still allow up to 1 GB for kernel mode requests and 1 GB for MEM TO
LEAVE sections of memory, all backed by physical ram. To the extent that
other applications and the OS itself requires physical ram, you could still
maintain a 2 GB Buffer Pool backed by physical ram and allow the kernel mode
and MEM TO LEAVE regions to be swapped out to the page file.
So, yes, there could be benefits to using the /3GB switch.
However, you never said what OS version you were running on. Neither Win2K
SE nor Win2K3 SE support the /3GB boot.ini parameter. You have to be
running Win2K AS or Win2K3 EE or either of the Data Center Editions.
Sincerely,
Anthony Thomas
"Simon" <Simon@.cmg.noemail> wrote in message
news:07DDD724-0C42-4748-A82F-5C41DE2AD5D4@.microsoft.com...
I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?

Full text 4Gb memory

I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?The /3GB switch refers to the Virtual Address Space for any process, not
just SQL Server. Whether or not that space is backed by physical ram is
dependent on the configuration of the server and other applications running
at any particular time. Let's say you have 2 GB of ram and a 4 GB swap
file. Then, it is possible for an application to have, say 1 GB of physical
ram for kernel mode processing, 1 GB of physical ram for a portion of the
user mode processing, then the application could use of to 2 GB of swap
space. The allocation of that swap space would be dependent on the /3GB
switch being enabled or not.
The same goes for physical ram. If you have 4 GB, then it is possible that
one application could be allocated 1 GB for kernel mode, and 3 GB for user
mode. The problem is that this is not the only application on the server.
If anything, the OS has to be running, mostly from critical sections of
physical ram.
Now, SQL Server 2K Standard Edition will only allocate a MAXIMUM of 2 GB for
the Buffer Pool. As SS2K SE is an application, it could use 1 GB to 2 GB
for the kernel mode requests, but the Buffer Pool is not the ONLY space SS
uses. So, by using the /3GB switch, you could dedicate a 2 GB Buffer Pool
and still allow up to 1 GB for kernel mode requests and 1 GB for MEM TO
LEAVE sections of memory, all backed by physical ram. To the extent that
other applications and the OS itself requires physical ram, you could still
maintain a 2 GB Buffer Pool backed by physical ram and allow the kernel mode
and MEM TO LEAVE regions to be swapped out to the page file.
So, yes, there could be benefits to using the /3GB switch.
However, you never said what OS version you were running on. Neither Win2K
SE nor Win2K3 SE support the /3GB boot.ini parameter. You have to be
running Win2K AS or Win2K3 EE or either of the Data Center Editions.
Sincerely,
Anthony Thomas
"Simon" <Simon@.cmg.noemail> wrote in message
news:07DDD724-0C42-4748-A82F-5C41DE2AD5D4@.microsoft.com...
I have a server run std edition 2000 with FTS. The server has 4Gb of memory
is there any benefit in setting the 3Gb switch?

2012年2月19日星期日

fts within a single record

I am hoping that someone has an "it's obvious" solution. I have a bunch (~100) of text fields in a single record. I want a user to be able to search all of the fields (within this single record) for a string, and to return the field number(s) of where the string was found. Is there a way to do this within the MSSQL server's built in fts catalog, (or some other product) or do I need to code this by hand? I could limit the searchable strings to a finite set, if needed.I believe that you can do this with Full Text Search. You must, however, have a finite set of columns to search upon. You must also have a primary key for the Full Text Search engine to be able to identify the specific record with matching search criteria.

You must enable install and enable Full Text Search (it is not installed by default). You must then create the Full Text Search process (I cheat like crazy and use the wizard in EM; this is NOT recommended). It is recommended that you use QA and create the processes yourself.

You will need to populate the Full Text catalogue initially and then create a schedule to update the Full Text catalogue periodically.

Regards,

Hugh Scott

Originally posted by wooliewillie
I am hoping that someone has an "it's obvious" solution. I have a bunch (~100) of text fields in a single record. I want a user to be able to search all of the fields (within this single record) for a string, and to return the field number(s) of where the string was found. Is there a way to do this within the MSSQL server's built in fts catalog, (or some other product) or do I need to code this by hand? I could limit the searchable strings to a finite set, if needed.

FTS Thesaurus Diacritics

Has anyone played with the <diacritics> or <diacritics_sensitive> tag in the
thesaurus for FTS? If so, have you actually gotten it to affect your
results? It doesn't matter what I change it to, in testing it appears to be
over-ruled by the FT Catalog accent sensitivity setting.
"Mike C#" <xyz@.xyz.com> wrote in message
news:OWqzQennHHA.3512@.TK2MSFTNGP06.phx.gbl...
> Has anyone played with the <diacritics> or <diacritics_sensitive> tag in
> the thesaurus for FTS? If so, have you actually gotten it to affect your
> results? It doesn't matter what I change it to, in testing it appears to
> be over-ruled by the FT Catalog accent sensitivity setting.
After a little further review, it appears the <diacritics> and
<diacritics_sensitive> tags are not even included in the schema definition
for the thesaurus files. There is an optional "weight" attribute assigned
to the <sub> elements, however. Is this documented anywhere?
Thanks.

fts SQL Server Personal on XP Pro

Hi,
I have SQL Server 2000 Personal edition installed on XP
Pro and am trying to implement the full-text search
facility. There doesn't seem to be any option to install
fts on my SQL Server CD so I assumed it should be
installed by default.
However, when I try
EXEC sp_fulltext_database @.action = 'Enable'
I get the following error
erver: Msg 7609, Level 17, State 2, Procedure
sp_fulltext_database, Line 46
Full-Text Search is not installed, or a full-text
component cannot be loaded.
Is FTS possible with this version of SQLServer?
thanks
Maracatu
maracatu,
No, the SQL Server 2000 "Full-Text Search" components are not supported with
the Personal Edition. See SQL 2000 BOL title "Features Supported by the
Editions of SQL Server 2000" for editions that support SQL FTS.
Regards,
John
"maracatu" <jarrod@.dovelight.com> wrote in message
news:1ccfa01c42241$c5b48fe0$a101280a@.phx.gbl...
> Hi,
> I have SQL Server 2000 Personal edition installed on XP
> Pro and am trying to implement the full-text search
> facility. There doesn't seem to be any option to install
> fts on my SQL Server CD so I assumed it should be
> installed by default.
> However, when I try
> EXEC sp_fulltext_database @.action = 'Enable'
> I get the following error
> erver: Msg 7609, Level 17, State 2, Procedure
> sp_fulltext_database, Line 46
> Full-Text Search is not installed, or a full-text
> component cannot be loaded.
> Is FTS possible with this version of SQLServer?
> thanks
> Maracatu
|||Hmmmm.... This article on MSDN says that Full Text IS supported on Personal Edition...
http://msdn.microsoft.com/library/de...ar_ts_1cdv.asp
Posted using Wimdows.net NntpNews Component -
Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine supports Post Alerts, Ratings, and Searching.
|||SqlJunkies User,
Hmmm is right... Actually we both referenced the same doc (your MSDN
reference is the same info that is in the SQL BOL reference I quoted...
However, the initial poster may need to specifically install the SQL FTS
components via the SQL CD's "custom installation" and select the "Full-text
Search" components in order to install it. I've not tested this myself as I
don't use the Personal Edition of SQL Server on WinXP as I use the Developer
Edition. If you have the Personal Edition, perhaps you could test this
yourself and post the results here... ;-)
Regards,
John
"SqlJunkies User" <User@.-NOSPAM-SqlJunkies.com> wrote in message
news:#W##QXpREHA.1276@.TK2MSFTNGP11.phx.gbl...
> Hmmmm.... This article on MSDN says that Full Text IS supported on
Personal Edition...
>
http://msdn.microsoft.com/library/de...ar_ts_1cdv.asp
>
> --
> Posted using Wimdows.net NntpNews Component -
> Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine
supports Post Alerts, Ratings, and Searching.
|||I had the exact same problem. I found and posted the article mentioned in the last post. I then found article Q827449 that tells how to reinstall Full Text by running some stuff on the SQL CD. I followed all the instructions, but didn't seem to make it
work. Something still missing. Then, when running the Setup for SQL 2000 Personal Edition again (Not uninstalling my first one), and choosing a Custom Install to Add/Remove components, the option for Full Text was already checked. It would not let me
uncheck it (Setup didn't recognize that I had changed anything and wouldn't continue). Finally, had to uninstall, whack all SQL related registry keys, and reinstall. On the reinstall, chose Custom Install. Full Text is NOT checked by default. Checked
it, and finished the install. Full Text is now available and usable on my SQL 2000 Personal Edition on XP Professional. If you haven't "damaged" you SQL install by following Q827449, you might be able to add it by running Setup again and choosing Custo
m Install to Add/Remove Components...
Posted using Wimdows.net NntpNews Component -
Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine supports Post Alerts, Ratings, and Searching.
|||Hi,
In order to un-check the option for Full Text Search that was already
checked, you must delete or rename the following Tracking Key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\<Instance_Name>\Tracking\
{E07FDDA7-5A21-11d2-9DAD-00C04F79D434}
Note, if your SQL Server 2000 is not a named instance, remove
"<Instance_Name>\" and be sure to be logged on to the server as either
Administrator or as a member of the server's Admin Group.
Once you've done removed (renamed) the above tracking key, then delete the
MSSearch directory from either:
drive_letter:\Program Files\Common Files\Microsoft Shared\
or
drive_letter::\Program Files\Common Files\System\
Then using your SQL Server 2000 installation CD re-install via "Custom
Installation" the Full-Text Search component (it should be un-checked). When
this completes find and save these files: SearchSetup.log (usually under
\windows or \winnt folders) and sqlsp.log. If any problems, you should post
these files.
I'm not sure why the procedures in Q827449 failed for you, but if you follow
the above procedures, it will always work as I've posted the above methods
many, many times in this newsgroup (microsoft.public.sqlserver.fulltext) and
always with successful results.
Regards,
John
<CSaalfeld@.-NOSPAM-Earthlink.net> wrote in message
news:OEdOfICSEHA.3052@.TK2MSFTNGP12.phx.gbl...
> I had the exact same problem. I found and posted the article mentioned in
the last post. I then found article Q827449 that tells how to reinstall
Full Text by running some stuff on the SQL CD. I followed all the
instructions, but didn't seem to make it work. Something still missing.
Then, when running the Setup for SQL 2000 Personal Edition again (Not
uninstalling my first one), and choosing a Custom Install to Add/Remove
components, the option for Full Text was already checked. It would not let
me uncheck it (Setup didn't recognize that I had changed anything and
wouldn't continue). Finally, had to uninstall, whack all SQL related
registry keys, and reinstall. On the reinstall, chose Custom Install. Full
Text is NOT checked by default. Checked it, and finished the install. Full
Text is now available and usable on my SQL 2000 Personal Edition on XP
Professional. If you haven't "damaged" you SQL install by following
Q827449, you might be able to add it by running Setup again and choosing
Custom Install to Add/Remove Components...
>
> --
> Posted using Wimdows.net NntpNews Component -
> Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine
supports Post Alerts, Ratings, and Searching.

FTS Security Issue

Hi,
FTS will not populate the catalogs. 0 Items.
I have a new installation W2003 with SQL2K Sp3.
The SQL Server is running with a high security configuration.
All the SQL services are running under an account Domain\SQLService which is a plain old user in the domain and on the SQL Server box.
The local system account was chosen during installation. I changed to the domain user via the Enterprise Manager after the fact. SQL Server and SQL Agent run fine. BUILTIN\Administrators has been removed.
I saw a post that said changing the service account from one account and back to the original should fix the problem. It did not. I see "Login failed for NT AUTHORITY\SYSTEM" in the SQL Error Log when I try to build the catalog. I checked the account th
at is running MS Search in the Services dialog and it is still Local System. When I changed accounts on SQL Server, I changed it to myself a local admin and then back to the Domain\SQLService account. I tried changing the MS Search account via the Service
s dialog to Domain\SQLService account and now it will not start. Domain\SQLService has full control on the FTDATA directory. Any other directories or registery keys that perhaps Domain\SQLService needs access to, but is not being set?
Thanks,
Norman
Follow up...
Here are some messages from the event log:
12:14:21 PMSearch Service 7052The Search service has loaded project <SQLServer SQL0002000005>.
12:14:19 PMIndexer 7070The Search service has added project <SQL0002000005>.
12:14:19 PMIndexer 7071The Search service has removed project <SQL0002000005>.
12:14:19 PMIndexer 7042Project <SQLServer SQL0002000005> has been shut down as requested by user.
12:14:05 PMIndexer 7045The catalog was not propagated, because no new files were detected for the project <SQLServer SQL0002000005>.
12:14:05 PMGatherer 3018The end of crawl for project <SQLServer SQL0002000005> has been detected. The Gatherer successfully processed 0 documents totaling 0K. It failed to filter 1 documents. 0 URLs could not be reached or were denied access.
12:14:05 PMGatherer 3024The crawl for project <SQLServer SQL0002000005> could not be started, because no crawl seeds could be accessed. Fix the errors and try the crawl again.
12:14:05 PMGatherer 3036The crawl seed <MSSQL75://SQLServer/37fa4c37> in project <SQLServer SQL0002000005> cannot be accessed. Error: 800700e9 - No process is on the other end of the pipe. .
12:14:04 PMGatherer 3019The crawl on project <SQLServer SQL0002000005> has started.
|||Norman,
The MSSearch service requires that either the BUILTIN\Administrators login
be present or that [NT Authority\System] localsystem login have the below
rights and this is why you are seeing ("Login failed for NT
AUTHORITY\SYSTEM" ) after removing the BUILTIN\Administrators login:
exec sp_grantlogin N'NT Authority\System'
exec sp_defaultdb N'NT Authority\System', N'master'
exec sp_defaultlanguage N'NT Authority\System','us_english'
exec sp_addsrvrolemember N'NT Authority\System', sysadmin
See also KB article Q263712 "INF: How To Prevent Windows NT Administrators
From Administering a Clustered SQL Server"
at http://support.microsoft.com/default...;EN-US;q263712 for more
info.
Regards,
John
"Norman" <anonymous@.discussions.microsoft.com> wrote in message
news:C6CE845A-0975-4801-8B0B-5B02D848F336@.microsoft.com...
> Follow up...
> Here are some messages from the event log:
> 12:14:21 PM Search Service 7052 The Search service has loaded project
<SQLServer SQL0002000005>.
> 12:14:19 PM Indexer 7070 The Search service has added project
<SQL0002000005>.
> 12:14:19 PM Indexer 7071 The Search service has removed project
<SQL0002000005>.
> 12:14:19 PM Indexer 7042 Project <SQLServer SQL0002000005> has been shut
down as requested by user.
> 12:14:05 PM Indexer 7045 The catalog was not propagated, because no new
files were detected for the project <SQLServer SQL0002000005>.
> 12:14:05 PM Gatherer 3018 The end of crawl for project <SQLServer
SQL0002000005> has been detected. The Gatherer successfully processed 0
documents totaling 0K. It failed to filter 1 documents. 0 URLs could not be
reached or were denied access.
> 12:14:05 PM Gatherer 3024 The crawl for project <SQLServer SQL0002000005>
could not be started, because no crawl seeds could be accessed. Fix the
errors and try the crawl again.
> 12:14:05 PM Gatherer 3036 The crawl seed <MSSQL75://SQLServer/37fa4c37> in
project <SQLServer SQL0002000005> cannot be accessed. Error: 800700e9 - No
process is on the other end of the pipe. .
> 12:14:04 PM Gatherer 3019 The crawl on project <SQLServer SQL0002000005>
has started.
>
|||John,
No kudos to Microsoft for the high level security requiements for MS Search and not providing a KB with a work around for highly secure environments.
FYI:
Even though I found posts that indicate the contrary, the MS Search service remains Local System Account regardless of which account you put in the the SQL Service or SQL Agent at installation or after the fact via the Enterprise Manager. I tried it on se
veral SQL Server installations on W2K and W2003.
My compromise solution was to create a domain account specifically for the MS Search service and make it local admin and sa in the SQL Server. This seems to function correctly for all the test I have tried. The SQL Server service is then still locked down
as long as there are no holes to exploit via the FTS queries. (I won't hold my breath)
Norman
|||Norman,
Unfortunately, I'd have to agree with you. FYI, the "Microsoft Search"
(mssearch.exe) service should ALWAYS be started and running under the
"system" or LocalSystem account as that how it is currently designed in SQL
Server 2000. However, for SQL Server 2005 (Yukon) this has changed and the
new MSSearch service, will be able to run under the same service account as
the MSSQLServer service.
If I was in the SQL MVP program, I'd be glad to volunteer and write such a
KB article, but alas I'm not *yet* in that program...
Regards,
John
"Norman" <anonymous@.discussions.microsoft.com> wrote in message
news:F954B2E0-FCDA-4692-8F80-D10DB1F5F701@.microsoft.com...
> John,
> No kudos to Microsoft for the high level security requiements for MS
Search and not providing a KB with a work around for highly secure
environments.
> FYI:
> Even though I found posts that indicate the contrary, the MS Search
service remains Local System Account regardless of which account you put in
the the SQL Service or SQL Agent at installation or after the fact via the
Enterprise Manager. I tried it on several SQL Server installations on W2K
and W2003.
> My compromise solution was to create a domain account specifically for the
MS Search service and make it local admin and sa in the SQL Server. This
seems to function correctly for all the test I have tried. The SQL Server
service is then still locked down as long as there are no holes to exploit
via the FTS queries. (I won't hold my breath)
> Norman

FTS results page question

I'm an FTS newb so please be gentle.
When using most search services the results returned are accompanied by a
snippet or excerpt of the full text that scored a hit showing the matched
word(s)/phrase in context.
For example, if I search for "full-text search" I might receive this as one
entry in the list of results:
... immediately alerts you if a server gets out ... a graphical
administration interface, an SQL query tool ... It provides the full-text
search based on Microsoft Indexing ...
Can I get a similar snippet or excerpt using FTS or will I have to roll my
own solution? Any suggestions regarding how to implement the latter would
be greatly appreciated.
Thanks,
Will
Hi Will,
Not to worry, as I and others who post the replies here, know a great deal
about SQL Full-text Search (FTS ;-)
Could you post the output of the following SQL script that will provide info
on your SQL Server and OS platform?
use master
go
SELECT @.@.language
SELECT @.@.version
go
If I correctly understand your requirement, you want a range of words, plus
and minus distance from the search word. Correct?
Assuming so, then using a table (pub_info) in the Pubs database that is
already FT-enabled on the TEXT column (pr_info), you could use the following
SQL code to get the results you want:
-- The following SQL FTS query on the pubs table pub_info will return rows
that match the FTS search word (books)
-- and the near by words from 20 characters before to 100 characters after
the searched keyword(books).
SELECT pub_id, SubString(pr_info,PatIndex ('%books%',pr_info)-20,100)
FROM pub_info
WHERE Contains(pr_info, 'books')
/* returns the following results:
pub_id
-- ---
9952 t data for Scootney Books, publisher 9952 in the pubs database.
Scootney Books is located in New Yor
0736 t data for New Moon Books, publisher 0736 in the pubs database. New
Moon Books is located in Boston,
(2 row(s) affected)
*/
You can vary the length of the results via the PatIndex parameters.
Hopefully, this is what you're looking for!
Regards,
John
"William Wise" <will@.digitalelite.com> wrote in message
news:Xns951582AA063F8willdigitalelitecom@.68.1.17.6 ...
> I'm an FTS newb so please be gentle.
> When using most search services the results returned are accompanied by a
> snippet or excerpt of the full text that scored a hit showing the matched
> word(s)/phrase in context.
> For example, if I search for "full-text search" I might receive this as
one
> entry in the list of results:
> ... immediately alerts you if a server gets out ... a graphical
> administration interface, an SQL query tool ... It provides the full-text
> search based on Microsoft Indexing ...
> Can I get a similar snippet or excerpt using FTS or will I have to roll my
> own solution? Any suggestions regarding how to implement the latter would
> be greatly appreciated.
> Thanks,
> Will
|||Hi John,
Here's the info:
us_english
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation Developer Edition on Windows
NT 5.2 (Build 3790: )
Thanks for the quick reply. Works like a charm. I'll have to futze with
it some more to get it to prefix the pattern with <STRONG>tags</STRONG>.
Seems like this will require me to parse a complex user-submitted search
string if I want to show instances of each hit.
Will
"John Kane" <jt-kane@.comcast.net> wrote in
news:e6LiFCIXEHA.1684@.tk2msftngp13.phx.gbl:

> Hi Will,
> Not to worry, as I and others who post the replies here, know a great
> deal about SQL Full-text Search (FTS ;-)
> Could you post the output of the following SQL script that will
> provide info on your SQL Server and OS platform?
> use master
> go
> SELECT @.@.language
> SELECT @.@.version
> go
> If I correctly understand your requirement, you want a range of words,
> plus and minus distance from the search word. Correct?
> Assuming so, then using a table (pub_info) in the Pubs database that
> is already FT-enabled on the TEXT column (pr_info), you could use the
> following SQL code to get the results you want:
>
> -- The following SQL FTS query on the pubs table pub_info will return
> rows that match the FTS search word (books)
> -- and the near by words from 20 characters before to 100 characters
> after the searched keyword(books).
> SELECT pub_id, SubString(pr_info,PatIndex ('%books%',pr_info)-20,100)
> FROM pub_info
> WHERE Contains(pr_info, 'books')
> /* returns the following results:
> pub_id
> --
> --
> 9952 t data for Scootney Books, publisher 9952 in the pubs database.
> Scootney Books is located in New Yor
> 0736 t data for New Moon Books, publisher 0736 in the pubs database.
> New Moon Books is located in Boston,
> (2 row(s) affected)
> */
> You can vary the length of the results via the PatIndex parameters.
> Hopefully, this is what you're looking for!
> Regards,
> John

FTS query performance on SQL 2005

I am seeing some query performance issues on a full-text search on SQL 2005.
My table has about 20 million rows, containing an integer primary key and a
field of type text. This is running on a dual core Xeon 2.8 Ghz processor, 2
GB RAM, 15k RPM drives in a RAID 5 configuration.
My query looks like this:
select ItemID FROM Item WHERE CONTAINS(ItemText, 'there')
which returns about 40,000 rows, but the query takes over 2 minutes! Is that
normal performance for this beefy server for such a simple query? If I add
"TOP 20" after the SELECT, the query takes under 1 second.
I have checked the hardware and I can't seem to find constraints, either in
CPU, memory or disk. Any ideas why that query takes over 2 minutes?
Thanks.
Speed depends on the complexity of your query and the amount of rows you are
returning. In your case you have a simple query and what appears to be
causing the performance problem. I would use containstable with the
top_n_by_rank parameter to limit your results set to 100 or 200 rows.
Is this SQL 2005? There are some optimizations for SQL 2005 which will offer
better performance.
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
"Bahama Joe" <someone@.microsoft.com> wrote in message
news:ub9L57y%23GHA.1224@.TK2MSFTNGP05.phx.gbl...
>I am seeing some query performance issues on a full-text search on SQL
>2005. My table has about 20 million rows, containing an integer primary key
>and a field of type text. This is running on a dual core Xeon 2.8 Ghz
>processor, 2 GB RAM, 15k RPM drives in a RAID 5 configuration.
> My query looks like this:
> select ItemID FROM Item WHERE CONTAINS(ItemText, 'there')
> which returns about 40,000 rows, but the query takes over 2 minutes! Is
> that normal performance for this beefy server for such a simple query? If
> I add "TOP 20" after the SELECT, the query takes under 1 second.
> I have checked the hardware and I can't seem to find constraints, either
> in CPU, memory or disk. Any ideas why that query takes over 2 minutes?
> Thanks.
>
|||Thanks for the reply. Yes, this is SQL 2005 - what optimizations are you
referring to? I believe I have applied all optimizations that I've been able
to find in the various posts and online docs.
I know that I can limit the size of the resultset with top_n_by_rank, but in
this case, I'm trying to get back the full set of results. Another form of
my query is to do a "select count(*)", which has the same response times. I
believe this is because the full resultset is returned from the FTE back to
SQL Server, and then the count is taken on that. Is there a way to structure
the query to tell the FTE that you just want the count of results, so that
it doesn't ship the full results back to SQL Server?
Essentially, I'm trying to create a search engine, where the results will be
displayed back to the user in paginated form, so it will always display a
subset of the resultset, but I'd like to also display "Showing results 1-20
of 40,000", so I need a way to get the size of the resultset.
With regard to hardware, would you expect that I will get the most bang for
my buck by a) spreading my data across more disks (via RAID) in a single
server, b) creating a cluster of separate servers, c) adding more memory, or
d) adding more CPU's?
Thanks.
|||Thanks for the reply. Yes, this is SQL 2005 - what optimizations are you
referring to? I believe I have applied all optimizations that I've been able
to find in the various posts and online docs.
I know that I can limit the size of the resultset with top_n_by_rank, but in
this case, I'm trying to get back the full set of results. Another form of
my query is to do a "select count(*)", which has the same response times. I
believe this is because the full resultset is returned from the FTE back to
SQL Server, and then the count is taken on that. Is there a way to structure
the query to tell the FTE that you just want the count of results, so that
it doesn't ship the full results back to SQL Server?
Essentially, I'm trying to create a search engine, where the results will be
displayed back to the user in paginated form, so it will always display a
subset of the resultset, but I'd like to also display "Showing results 1-20
of 40,000", so I need a way to get the size of the resultset.
With regard to hardware, would you expect that I will get the most bang for
my buck by a) spreading my data across more disks (via RAID) in a single
server, b) creating a cluster of separate servers, c) adding more memory, or
d) adding more CPU's?
Thanks.
|||I'm struggling with the same issues as you.
Basically what i do is bank on the fact that it is rare for most people to
look beyond the first page of results, so I write the results of the search
to a table, and return it to a data reader displaying the first 25 results
and a count of all search results. Repeat searches go against the cached
table.
The optimizations are
1) use 64 bit
2) use a high resource_usage keeping in mind this can cause locking
3) reorganize your catalogs frequently
4) set ft crawl bandwidth (max) and ft notify bandwidth (max) to 0
5) max full-text crawl range to the number of cpu's on your system
6) convert your binary data to text
and you get the best bank for your buck by placing the full-text catalog on
its own disk subsystem and controller with the fastest disks available. RAID
5 offers best read performance, but for frequently updated catalogs use raid
10.
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
"Bahama Joe" <someone@.microsoft.com> wrote in message
news:epadrr9%23GHA.4712@.TK2MSFTNGP03.phx.gbl...
> Thanks for the reply. Yes, this is SQL 2005 - what optimizations are you
> referring to? I believe I have applied all optimizations that I've been
> able
> to find in the various posts and online docs.
> I know that I can limit the size of the resultset with top_n_by_rank, but
> in
> this case, I'm trying to get back the full set of results. Another form of
> my query is to do a "select count(*)", which has the same response times.
> I
> believe this is because the full resultset is returned from the FTE back
> to
> SQL Server, and then the count is taken on that. Is there a way to
> structure
> the query to tell the FTE that you just want the count of results, so that
> it doesn't ship the full results back to SQL Server?
> Essentially, I'm trying to create a search engine, where the results will
> be
> displayed back to the user in paginated form, so it will always display a
> subset of the resultset, but I'd like to also display "Showing results
> 1-20
> of 40,000", so I need a way to get the size of the resultset.
> With regard to hardware, would you expect that I will get the most bang
> for
> my buck by a) spreading my data across more disks (via RAID) in a single
> server, b) creating a cluster of separate servers, c) adding more memory,
> or
> d) adding more CPU's?
> Thanks.
>
>
|||Thanks for the reply. I had already applied optimizations 2, 4 and 5, based
on one of your earlier posts in another thread. I don't have access to a
64-bit server, but this is a good suggestion. My data is static data, so I
don't expect I'll need to reorganize the catalogs frequently. Also, I only
have text data stored in a single column of type 'text', no binary data.
With regard to caching, I find that subsequent queries using the same search
string (i.e. to support the user going to the next page) come back in about
3-4 ms, meaning that there's already some good caching in place within SQL
Server. It seems that relying on that should be sufficient, instead of
creating my own sepearate caching mechanism as you describe. Is that not
your experience? The most pressing issue I'm trying to resolve is why the
first query (without a top_n_by_rank) can sometimes take 2-3 minutes to
respond.
Thanks.
|||This could be caching of the catalog pages. What is your max server memory
setting?
sp_configure 'max server memory (MB)'
Also what happens if you just issue a new contains query ie like this
select * from TableName where contains(*,'"George Bush"')
supposing you have not searched for George Bush recently and he is in your
content?
It could be that the other tables are causing the performance hit and not
your full-text queries themselves.
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
"Bahama Joe" <someone@.microsoft.com> wrote in message
news:ON3tvnE$GHA.5092@.TK2MSFTNGP04.phx.gbl...
> Thanks for the reply. I had already applied optimizations 2, 4 and 5,
> based on one of your earlier posts in another thread. I don't have access
> to a 64-bit server, but this is a good suggestion. My data is static data,
> so I don't expect I'll need to reorganize the catalogs frequently. Also, I
> only have text data stored in a single column of type 'text', no binary
> data.
> With regard to caching, I find that subsequent queries using the same
> search string (i.e. to support the user going to the next page) come back
> in about 3-4 ms, meaning that there's already some good caching in place
> within SQL Server. It seems that relying on that should be sufficient,
> instead of creating my own sepearate caching mechanism as you describe. Is
> that not your experience? The most pressing issue I'm trying to resolve is
> why the first query (without a top_n_by_rank) can sometimes take 2-3
> minutes to respond.
> Thanks.
>
|||Hello Bahama,
Is this an upgrade or a new SQL install?
Make sure you update your statistics and possibly rebuild your indexes.
To get a count it is better to do select count(1) from containstable (table,
column,search)
To get the paged results do SELECT TOP x where x covers the page the users
wants.
Make sure you SQL box isn't using all the memory, you need to share it with
full text.
How big is your database? 20 million rows and 2Gb of cache doesn't allow
for much of you DB to be cached.
What indexes do you have on your tables?
Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons

> Thanks for the reply. I had already applied optimizations 2, 4 and 5,
> based on one of your earlier posts in another thread. I don't have
> access to a 64-bit server, but this is a good suggestion. My data is
> static data, so I don't expect I'll need to reorganize the catalogs
> frequently. Also, I only have text data stored in a single column of
> type 'text', no binary data.
> With regard to caching, I find that subsequent queries using the same
> search string (i.e. to support the user going to the next page) come
> back in about 3-4 ms, meaning that there's already some good caching
> in place within SQL Server. It seems that relying on that should be
> sufficient, instead of creating my own sepearate caching mechanism as
> you describe. Is that not your experience? The most pressing issue I'm
> trying to resolve is why the first query (without a top_n_by_rank) can
> sometimes take 2-3 minutes to respond.
> Thanks.
>
|||Hilary,
Here is the result of that query:
name=max server memory (MB)
minimum=16
maximum=2147483647
config_value=4096
run_value=4096
Is that configured correctly for a server w/ 2GB of physical RAM?
Also, in one of your earlier posts, you mentioned setting "max full-text
crawl range" to the number of CPU's on the system. I have a dual-core Xeon
processor, meaning it has 2 CPU's (in one chip). However, due to Hyper
Threading, Windows and SQL Server see this server as having 4 CPU's, so I
have that value set to 4. Is that a good setting?
All of my tests have been on just the single table that contains my
full-text index, such as "select ItemID from Item where
contains(ItemText,'"George Bush"')", so there are no other tables involved.
Thanks for all of your insightful replies.
|||Hello Simon,
This is a new SQL install. I just created the table, loaded it with all 20
million rows from a text file via "Import data...", then created the
full-text index (which took about 2 hours). My table basically includes an
"int" primary key (clustered index) column and a "text" column with the text
to be indexed. The table also includes 2 other "text" fields, but they're
not involved in these queries. The result is a database .MDF file of approx.
12GB and a full-text index with files of approx. 2GB, with the full-text
index containing approx. 1.4 million unique keys.
When I look at task manager for memory usage, I see the following:
sqlservr.exe --> mem usage=740MB, VM size=749MB
msftesql.exe --> mem usage=7.6MB, VM size=5MB
Right after a reboot, these numbers are continually rising, but after a
number of queries, these numbers steady out to the ones listed above. Based
on this, would you recommend that I change my memory configuration?
Thanks.

FTS Q - Proximate meaning of phrases

Hi
Is it possible to find records that contain the string "cyber-shot" when the value for search is "cybershot"?? (This is an example and I need a dynamic solution)
Thanks,
Inon.Probably (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_qd_15_3rqg.asp).

-PatP|||Depends upon exactly what you want. Are you doing a fuzzy search, or do you want to find all the values that contain the same characters? Do the characters have to be in the same order? Do you just want to ignore non-alphanumeric characters?
You will have to give more details on the problem if you want more details on the answer.

FTS Performance in SQL 2005

I do not see any resolution to this problem mentioned, and have a similar
problem.
I have just implemented a database with 12 tables, one FT index on a text
column for each table. The unique key column is a uniqueidentifier.
This is under SQL Server 2005, SP1, Windows 2003 Server, on an x64 dual
processor system with 16 GB RAM. SQL Server is limited to 12 GB RAM and
nothing else runs on the box.
The query uses CONTAINSTABLE.
We have an automated process that feeds thousands of queries, one at a time,
to run FT searches.
It appears that the searches run fine for a while, then the searches take
longer and longer, until eventually the search never returns, for hours
anyway.
When we see this happening, in Windows Task Manager we see that process
msftesql shows PF Delta up over 50,000.
The Memory Usage and VM Size never increase over about 65 MB and 20MB.
Did you ever find a solution for this ?
Thanks.
Doug Funk
News Data Services
dfunk@.newsdataservice.com
"Simon Sabin" <SimonSabin@.noemail.noemail> wrote in message
news:c4366deffa728c87fe6f490db50@.msnews.microsoft. com...
> Hello KaMa,
> The maximum equates to process ~4.5GB/s thats a lot.
> Can you post you query plans and the output of statistics IO
> Simon Sabin
> SQL Server MVP
> http://sqlblogcasts.com/blogs/simons
>
>
Hi Hilary,
Your comment here is a bit scary. It sounds like the FTS capabilities
of Sql Server 2005 are not ready for production. Can you detail a bit
more the problems you encounter that force you to restart the sql fts
once a week? Is MS aware of that problem? What are their
recommendations? Do you know of any upcoming patch or SP that would fix
this?
Tony.
Hilary Cotter wrote:[vbcol=seagreen]
> We pound full-text search the same way you do. There are advantages to a
> multi-proc machine - a quad or eight way. We have to restart sql fts once a
> week. We find that smaller tables work better - where smaller is 50 million
> or so rows.
> We also found the following settings work well:
> setting a high resource usage to 5 and reorganize frequently.
> set ft crawl bandwidth (max) and ft notify bandwidth (max) to 0,
> set max full-text crawl range to the number of cpu's on your system,
> index text only,
> put your catalogs on the fastest disk subsystem (RAID 10) possible
> preferrably with their own controller,
> and run 64 bit.
>
> --
> 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
>
> "Doug Funk" <doug.funk@.infomax-systems.com> wrote in message
> news:lAN_g.60102$OI1.44332@.newsfe15.lga...
|||Basically we find that the queries start taking longer and a bounce seems to
improve performance.
I have not communicated this to MS. You might want to open a support
incident yourself.
When we had a single table of over 300 million rows and pushing 2 terabytes
we had no end of problems with SQL FTS. After breaking the table up into 50
million row partitions we have had no real problems, but still bounce fts
weekly.
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
<tony.newsgrps@.gmail.com> wrote in message
news:1162399142.153739.316510@.e64g2000cwd.googlegr oups.com...
> Hi Hilary,
> Your comment here is a bit scary. It sounds like the FTS capabilities
> of Sql Server 2005 are not ready for production. Can you detail a bit
> more the problems you encounter that force you to restart the sql fts
> once a week? Is MS aware of that problem? What are their
> recommendations? Do you know of any upcoming patch or SP that would fix
> this?
> Tony.
>
> Hilary Cotter wrote:
>
|||Thank you for your answer. We'll look at partitioning our table if we
get into similar problems.
One quick follow up:
We keep on growing our table and the performance keeps on dropping.
With 8 million rows we had about 15 queries/sec. With 20 million rows,
we dropped to about 2 queries per sec. The server seems completely
underused though. The CPU and memory usage are very low and we see a
lot of page faults. Any idea what happened and how we could get back to
15 queries/sec? Could it be that the index needs to be re-organized or
something like that?
Our table is very simple (2 fields: 1 id, 1 plain text) and our queries
match only a very limited set of documents (100 matching records max
out of 20 millions).
Also, with your 300 millions/2TB table, what performance do you get on
queries (on average) and on what hardware?
Thanks a lot for your guidance.
Tony.
Hilary Cotter wrote:[vbcol=seagreen]
> Basically we find that the queries start taking longer and a bounce seems to
> improve performance.
> I have not communicated this to MS. You might want to open a support
> incident yourself.
> When we had a single table of over 300 million rows and pushing 2 terabytes
> we had no end of problems with SQL FTS. After breaking the table up into 50
> million row partitions we have had no real problems, but still bounce fts
> weekly.
> --
> 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
>
> <tony.newsgrps@.gmail.com> wrote in message
> news:1162399142.153739.316510@.e64g2000cwd.googlegr oups.com...
|||can you do this for me and post the results back here
sp_configure 'max server memory (MB)'
I don't think you have left enough memory for the OS and MSSearch.
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
<tony.newsgrps@.gmail.com> wrote in message
news:1162417354.892553.92200@.k70g2000cwa.googlegro ups.com...
> Thank you for your answer. We'll look at partitioning our table if we
> get into similar problems.
> One quick follow up:
> We keep on growing our table and the performance keeps on dropping.
> With 8 million rows we had about 15 queries/sec. With 20 million rows,
> we dropped to about 2 queries per sec. The server seems completely
> underused though. The CPU and memory usage are very low and we see a
> lot of page faults. Any idea what happened and how we could get back to
> 15 queries/sec? Could it be that the index needs to be re-organized or
> something like that?
> Our table is very simple (2 fields: 1 id, 1 plain text) and our queries
> match only a very limited set of documents (100 matching records max
> out of 20 millions).
> Also, with your 300 millions/2TB table, what performance do you get on
> queries (on average) and on what hardware?
> Thanks a lot for your guidance.
> Tony.
> Hilary Cotter wrote:
>
|||Hi Hilary,
thanks for the reply.
We have total 4gb ram on the server.
Currently SQLServer has max server memory (MB) set to 2048. I tried giving
it less (1024) but didn't notice any performance differences.
Any ideas?
When i allow SQLServer to use more memory (up to 3gb) i notice performance
downgrades with time probably because one SQLServer reaches its 3gb theres
not much left for OS/full-text engine.
What seems really strange is that full-text engine itself only uses about
7mb ram and has approx 100k page faults / sec.
Thanks,
Mikhail
"Hilary Cotter" wrote:
[vbcol=seagreen]
> can you do this for me and post the results back here
> sp_configure 'max server memory (MB)'
> I don't think you have left enough memory for the OS and MSSearch.
> --
> 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
>
> <tony.newsgrps@.gmail.com> wrote in message
> news:1162417354.892553.92200@.k70g2000cwa.googlegro ups.com...

FTS Performance

WE have sql server 2000 with a table around 10 text field and one full-text field. over 1million rows.

How can we realize a 5 seconds or less full text query?
resuts should be order by a date field.

Note: full text field is in Chinese.

if in solution of asp: by what sentence.
if in solution of isapi, by what dev tool?nobody?

FTS Over SQL Personal Edition

I have several instances of SQL Server 2000 Personal Edition running on 2000
Pro and XP Pro.
Are there any issues with installing Full-Text Search on these machines?
Thanks
hi ray!
"Binder" <rgondzur@.NO_SPAM_aicsoft.com> wrote in message
news:%23k4Erl4XEHA.3044@.TK2MSFTNGP09.phx.gbl...
> I have several instances of SQL Server 2000 Personal Edition running on
2000
> Pro and XP Pro.
> Are there any issues with installing Full-Text Search on these machines?
> Thanks
>
|||Binder,
If you review SQL 2000 BOL title "Features Supported by the Editions of SQL
Server 2000", it states that for the Personal Edition that Full-Text Search
is "Supported (except on Windows 98)". However, and while I've not tested
this with the Personal Edition (as I have with the Developer Edition), to
install FTS you must select "custom installation" from your SQL CD and under
the Server components, select the "Full-text Search" components and it
*should* install SQL FTS. No, to the best of my knowledge, there should not
be any installation issue with installing Full-Text Search on those
machines. However, I'd recommend that you be logged on as either Admin or as
a member of the Admin Group when you do the custom installation.
Regards,
John
"Binder" <rgondzur@.NO_SPAM_aicsoft.com> wrote in message
news:#k4Erl4XEHA.3044@.TK2MSFTNGP09.phx.gbl...
> I have several instances of SQL Server 2000 Personal Edition running on
2000
> Pro and XP Pro.
> Are there any issues with installing Full-Text Search on these machines?
> Thanks
>