RE: full-text search failed with one million of key words (Sqlserv



Hello,

thanks a lot for your answer.

Research with "toto" was just a test. In real life, my database contains
some informations (text, colours, ect) about picture files . Pictures come
from big old books numerisation. (Sometimes, we've got 500 to 1000 pictures
for only one book) And the table i want to query looks like this :

primary-key | data-text | file name
| localization
-----------------------------------------------------------------------
1 | page 1 of a book toto | new_york_library_522 |
C:/newyork
2 | page 2 of a document | paris_library_81
| D:/library_paris 3 | image from a old
book | new_york_library_523 | C:/newyork
.......

Here is a exemple of what i have to do :

we receive 500 000 files (all the old books of one library). All the files
have a name like this "NAME_LIBRARY_XXXXXXXXX" where X is a number.

And i need to select all these files to make some update actions in the
database.
I can't use the date.

so i need a query like "select * from mytable where
contains(file-name,'"NAME_LIBRARY_*"')".

And it don't work, because there's 500 000 results.

Another idea to help me ?

Have a good day and thanks for all

"denistc" wrote:

Hi Europa_Lili,

I assume the query you're submitting (the one that fails) actually looks like
select count(primary-key) from table where contains(data,'"v*"')
(i.e. with a * after v, meaning it's a prefix query)

SQL 2005 FTS will throw this error when the prefix identifies too many
distinct keywords that match it. What are the semantics of the query you're
trying to accomplish?

Another advice: if every row of your table contains "toto", then there's no
point in indexing it since querying for it provides no value. It will just
unnecessarily increase the size of your index. You may consider adding it to
the list of noise words. See SQL Books Online for information on noise word
files and how to change them (you'll need to re-index your data).
"Europa_Lili" wrote:

Hello,

I have to make big tests with sql server 2005 express (i'm waiting credits
to buy a full license).

I detected a big problem with my full-text search, and i don't know if it's
a bad use of Sql Server or if it's impossible to do it!

Here's my use case :

a table like this :

primary-key | data
--------------------------
1 | toto value1
2 | toto value2
3 | toto value3
...
1000001 | toto value1000001

So my table contains one millions of rows. Also, my index contains one
million+one key words : "toto" and all the "valueXXXX".

if i make those requests :

select count(primary-key) from table where contains(data,'"toto"') -> ok,
1000001
select count(primary-key) from table where contains(data,'"value5321"') ->
ok, 1
select count(primary-key) from table where contains(data,'"t*"') -> ok,
1000001
select count(primary-key) from table where contains(data,'"v"') -> KO, error
message "too complex request ect". I was expected 1000001.

Can someone help me ? I'm sure sql server 2005 can do it, but i'm also sure
i forgot an option...

Note : i work on a database who contains several millions rows, and
sometimes, users need to make some insert/update of several thousands of
rows. So they need to make very big requests to check the insert/update.

And i'm not english, so sorry for the mistakes ;-)

Thanks to all !


.



Relevant Pages

  • Re: Error 25081: Incorrectly generating identities after a merge
    ... database similarly to SQL Server CE Replication. ... On the SQL Server 2000 database with replicated tables from the original ... The I synchronized that database and ran the same query: ... >> synchronization. ...
    (microsoft.public.sqlserver.ce)
  • Re: Looking for a professional SQL programmer for a small job
    ... Pro SQL Server 2000 Database Design - ... I have two queries to build and while I know my way around SQL, ... >> One is a seach query that pull rental properties from a database based on ...
    (microsoft.public.sqlserver.programming)
  • Re: Using a worksheet as a table in an SQL query
    ... I'll probably just dump the SQL Server data to a spreadsheet and join the two spreadsheets. ... You could use Access to link to both sources and create a crosstab query. ... There are ways to enter the data into their database via the application, but it would require them to go to many different windows instead of being able to enter the data all on one screen. ... There is not a great deal of data they would enter on the spreadsheet, but I'm not sure how slow that would make the query. ...
    (microsoft.public.excel.programming)
  • Re: Issue with a table that is 75%-80% of the database size
    ... SQL Server 2000 does not support table partitioning. ... Have you tried database differential backup? ... your query response time and backup time. ...
    (microsoft.public.sqlserver.server)
  • Re: ssis error
    ... database under master and the use pharma, GO, and creat tables. ... create database toto ... after query I open query analyse and my table is there in toto ...
    (microsoft.public.sqlserver.dts)