Groups | Blog | Home
all groups > sql server full text search > june 2007 >

sql server full text search : Too many results error


Equality72521
6/26/2007 5:43:02 AM
Hi,

I can't find this covered elsewhere in here, but apologies in advance if it
has already been done to death:

SQL 2000 SP4

I've created a single column full text index on a single table (proof of
concept, more coming later) and the CONTAINS search is giving me the error:

"Msg 7643, Level 16, State 0, Line 1
Your search generated too many results. Please perform a more specific
search."

A LIKE query with similar criteria returns 102998 rows, so I'm guessing it's
the same or a similar amount for the FTS search.

I haven't encountered the error before, some superficial Google searching
indicates this message is as a result of a fix in SP3.

Can anyone offer any insight? As the error suggests, a more refined search
works OK, but I'm in denial that this few rows is enough to eliminate FTS as
an option.

Many thanks,
Hilary Cotter
6/27/2007 12:00:00 AM
can you post a sample query which generates this result?

--
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
[quoted text, click to view]

Equality72521
6/28/2007 2:16:03 AM
Hi Hilary, thanks for replying.

The query I used was as follows (generic field / table placeholder used):

SELECT <field1> FROM <table1> WHERE CONTAINS(<field1>, ' "AZ*" ')

I was away from the office yesterday and interestingly, when I run the exact
same query today, I don't get the error - I also get no results back, which
is in keeping with the fix I believe. Perhaps the error was related to the
index being built in the background as I was attempting the query?

There are definitely results that should be returned; when I run a LIKE
query I get 102998 rows returned:

SELECT <field1> FROM <table1> WHERE <field1> LIKE 'AZ%'

Also, if I refine the FTS search slightly, I get 6612 rows returned which
seems to indicate that the index is populated correctly:

SELECT <field1> FROM <table1> WHERE CONTAINS(<field1>, ' "AZ1*" ')

Many thanks for any assistance you can provide.

Steve

[quoted text, click to view]
Daniel Crichton
6/29/2007 12:00:00 AM
Equality72521 wrote on Thu, 28 Jun 2007 02:16:03 -0700:

[quoted text, click to view]

This seems to be contrary to the fix, which is supposed to throw the error
message according to http://support.microsoft.com/default.aspx?scid=kb;en-us;296456

The fix for SQL2K has been present since SP2.

[quoted text, click to view]

The above URL suggests that this error will fire when there are more than
around 20,000 results, so getting an error with that many results would be
expected.

Dan

Equality72521
6/29/2007 7:46:00 AM
Thanks for your input Daniel.

I've just noticed that the error doesn't occur on SQL 2005, and there
doesn't appear to be a 20000 row limitation; the same CONTAINS query that
returns zero rows in SQL 2000 returns all rows in SQL 2005.

Thanks again.

Steve

[quoted text, click to view]
Simon Sabin
7/4/2007 6:42:33 PM
Hello Equality72521,

SQL 2005 has a very different architecture to SQL 2000 so more rows can be
managed


Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons


[quoted text, click to view]

Equality72521
7/5/2007 1:32:01 AM
Thanks for the response Simon. Do you know what the upper limit is within
2005, if indeed there is one?

Regards,
Steve

[quoted text, click to view]
Simon Sabin
7/5/2007 5:04:40 PM
Hello Equality72521,

I doubt there is a fixed one. More a resource imposed one, i.e. if you hardware
can take it.


Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons


[quoted text, click to view]

Equality72521
7/6/2007 5:36:01 AM
Great - thanks again Simon.

Steve

[quoted text, click to view]
AddThis Social Bookmark Button