大家都知道SqlServer全文檢索中的中文分詞的坑,分詞弱,而且分詞結果也不一致。
導致不能像 like '%%' 一樣獲取完整的結果。
先上例子
1、select * from sys.dm_fts_parser('濟南黃河路橋工程公司',2052,null,0) 結果如下
display_term
濟南
黃河
路橋
工程
公司
2、select * from sys.dm_fts_parser('濟南黃河路橋建設集團有限公司',2052,null,0) 結果如下
display_term
濟南
黃河
路橋
建設
集團
有限
公司
1、2中,分詞符合預期。但是搜索 “黃河路橋”沒有結果,為什么?接著看
3、select * from sys.dm_fts_parser('黃河路橋',2052,null,0) 結果如下
display_term
黃河路
橋
沒錯,黃河路橋 沒有分成 黃河+路橋。而是分成了黃河路+橋,導致了搜索 黃河路橋 沒有結果。
前些天無意中一個誤操作,將全文索引的斷字符語言 設定成了 “中文-臺灣”,結果搜索表現明顯好于“簡體中文”
搜“黃河路橋”也有結果。
看了下分詞結果
select * from sys.dm_fts_parser('濟南黃河路橋工程公司',1028,null,0)
display_term
濟
南
黃
河
路
橋
工程
公司
幾乎都是單字,也就是說,如果我們能讓sqlserver全部按單字分詞,就可以獲取比 like '%%' 還要完整的資料結果 和 全文索引的速度。
問題來了,怎么讓sqlserver,只按單字分詞?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/238267.html
標籤:基礎類
上一篇:SQL求助
