|
Home > Archive > MS SQL Server > July 2005 > RE: How to get EXACT match for Chinese phrases using Full-Text Sea
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
RE: How to get EXACT match for Chinese phrases using Full-Text Sea
|
|
| bsanders 2005-07-06, 7:23 am |
| Hi Michael, thanks for the reply, I had already reviewed the knowledge base
article you referenced but it simply deals with programmatically enclosing
search strings in double-quotes. What my problem is seeems to be related to
the linguistic algorithm used in "word breakers" techniques when I indexed
the table using simplified chinese. FTS seeems to treat some chinese
characters as space delimited words. A way to resolve it is to index the
table using neutral language, but this causes the FTS to exclude search
results that contains the search string but enclosed in punctuations (such as
double-quotes or other chinese punctuation such as book quotes). There is
quite some discussion in newsgroup about this:
C# is ignored on 2000 Server in mssearch
http://groups-beta.google.com/group...170db
ff7
Full text search giving incomplete results
http://groups-beta.google.com/group...bc74
fea9
Execution of a full-text operation failed. A clause of the query contained
only ignored words.
http://www.mcse.ms/printthread.php?threadid=1088004
I wonder if Microsoft might have a way to disable ignoring punctuation for
chinese language and just allow us exact matches similar to the "LIKE
'%searchstring%'" SQL clause.? I have both Windows 2000 and Windows 2003, and
sees problems on both platforms.
For example:
Using "LIKE '%searchstring%'" , my search return 664 records, all these are
exact matches.
However, the following returns on exact matches if I indexed my table using
neutral language, but nothing the significant decrease in search results, as
FTS excluded all results enclosed in english or chinese punctuation.
Using "CONTAINS(*,' "*searchstring*" '), my search returns 118 records
Using " CONTAINSTABLE(myTabl
eName,*,' "*searchstring*" '), my search returns
118 records
Using " CONTAINS(*,'searchst
ring'), my search returns 29 records
Using " CONTAINSTABLE(myTabl
eName,*,'searchstrin
g'), my search returns 29
records
| |
| Michael Cheng [MSFT] 2005-07-11, 3:23 am |
| Hi,
Thanks for your detailed research for this issue.
I understood you would like to use FTS instead of LIKE to meet a better
performance in both Windows 2000 and Windows Server 2003. If I have
misunderstood your concern, please feel free to point it out.
Unfortunately, I am afraid we do not have a proper way " to disable
ignoring punctuation for chinese language and just allow us exact matches
similar to the "LIKE '%searchstring%'" SQL clause".
I have noticed you are using neutral language for full-text and please also
place N before the search string to search for Unicode characters. Also
enclose the search string in double-quotes. For example
select product_name from product
where contains(product_nam
e, N' "*searchstring*" ')
where searchstring contains some Chinese characters.
Thank you for your patience and cooperation. If you have any questions or
concerns, don't hesitate to let me know. We are always here to be of
assistance!
Sincerely yours,
Michael Cheng
Microsoft Online Partner Support
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
====================
====================
=============
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|