2012年3月9日星期五

Full Text Catalog Search

Hello,
I'm running SQL Server 2000 on Windows 2000 Server.
I created a full text catalog of a table and one column from the table. I'm getting unexpected results when I query the catalog. The table name is "doc" and the column name is docident. I store document identification numbers in the docident column. A
mong others there are three document numbers in the docident column:
AF373416
AF373416A
AF373416C
When I run the following query for AF373416 I am returned results for both AF373416 and AF373416A. I don't see results for AF373416C though.
SELECT docident FROM doc
WHERE CONTAINS(docident,'AF373416')
Is this a bug in SQL server oris my select statement incorrect?
Thanks,
Fred Mitchell
Fred,
First of all, thank you for providing your SQL Server version and OS
Platform info! The latter is most important, and depending upon the actual
data, including punctuation, you may indeed be hitting a bug, not in SQL
Server, but with the OS supplied wordbreaker dll, Win2K's infosoft.dll.
Specifically, if there is any punctuation characters that is actual in
contact with your search word (AF373416), and if you are using the default
US_English "Language for Word Breaker", then the punctuation character is FT
Indexed along with the search word. Specifically, could you provide an
actual sample of the data in the docident column?
The current workaround for this issue on Win2K, is to drop and re-create the
FT Catalog and use the Neutral "Language for Word Breaker" and then run a
Full Population and re-test your below FTS query. Note, this is not an issue
with Win2003 or WinXP as these OS platforms have a new OS supplied
wordbreaker, langwrkb.dll.
Regards,
John
"Fred Michael" <FredMichael@.discussions.microsoft.com> wrote in message
news:1439C10B-1C0A-4592-BEBF-1C62C8F71620@.microsoft.com...
> Hello,
> I'm running SQL Server 2000 on Windows 2000 Server.
> I created a full text catalog of a table and one column from the table.
I'm getting unexpected results when I query the catalog. The table name is
"doc" and the column name is docident. I store document identification
numbers in the docident column. Among others there are three document
numbers in the docident column:
> AF373416
> AF373416A
> AF373416C
> When I run the following query for AF373416 I am returned results for both
AF373416 and AF373416A. I don't see results for AF373416C though.
> SELECT docident FROM doc
> WHERE CONTAINS(docident,'AF373416')
> Is this a bug in SQL server oris my select statement incorrect?
> Thanks,
> Fred Mitchell
>

没有评论:

发表评论