簡體   English   中英

SQL Server 2008“包含”搜索搜索數值是否返回具有相同長度的不同編號的所有記錄?

[英]Sql Server 2008 “Contains” search searching for numeric value returns all records with a different number of the same length?

我有一個搜索,用戶可以在其中輸入任何值,有時這些值只能是數字。 搜索時

Select * FROM Updates WHERE contains(Remarks, '"10010234331"')

它將返回數字相同長度的不相關結果,即上述匹配項為

"PO input differently on orders, refs are: 

1001024894 
10010248940"

如您所見,搜索不是這兩個子字符串的子串。 任何想法如何告訴它不僅僅是猜測?

對。

聽起來令人難以置信,事實證明,如果將全文索引“斷詞器語言”設置為除“英語”以外的任何其他內容,則全文索引將僅索引數字字符串的前5個數字。 這意味着上面的內容將作為匹配項返回,因為它們都以“ 10010”開頭。

“法語”,“德語”,“希伯來語”,甚至“中性”返回錯誤的結果,只有“英語”返回整個字符串的匹配項。

create table wtFTI( taskid int not null  ,  remarks text, constraint   [PK__wtFTI] primary key(taskid))
insert into wtfti
values(3513792, 'Remarks: 1001019658  was cancelled 26/08')
GO

CREATE FULLTEXT CATALOG [TaskRemarks]WITH ACCENT_SENSITIVITY = OFF

GO

CREATE FULLTEXT INDEX ON [dbo].[wtFTI] KEY INDEX [PK__wtFTI] ON ([TaskRemarks]) WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
GO
ALTER FULLTEXT INDEX ON [dbo].[wtFTI] ADD ([remarks]LANGUAGE 'French')
GO
ALTER FULLTEXT INDEX ON [dbo].[wtFTI] ENABLE
GO


Select * FROM [wtFTI] WHERE contains(Remarks, '"1001019000"')

ALTER FULLTEXT INDEX ON [dbo].[wtFTI] DROP ([remarks]) 
GO
ALTER FULLTEXT INDEX ON [dbo].[wtFTI] ADD ([remarks] LANGUAGE 'English')
GO


Select * FROM [wtFTI] WHERE contains(Remarks, '"1001019000"')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM