sqlserver字段类型为varchar(max)

JessieZao 2018-08-14 05:58:59
有一张存储作者,标题,文章的表,其中文章是varchar(max)类型的,现在需要通过一个文本查到对应的文章,该怎么办啊;

比如说这个文章是:胡适的英语老师、民国时期自学成才的出版家王云五先生在年轻的时候是这样自学英语写作的:找到一篇英文的名家佳作,熟读几次以后,把它翻译成中文,等过了一星期之后,再依据中文反过来翻译成英文,这个期间绝不查阅英语原文。翻译后再与原文比对,找出自己翻译的错误、失误和不够精良之处。如此反复练习,王云五先生练就了扎实的英文功底,为日后的英语教学和出版事业打下了坚实的基础。..............等等 好长好长
文本是:错误的翻译
...全文
1303 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xbmu3 2018-09-01
  • 打赏
  • 举报
回复
在文本里查,效率比较低
JessieZao 2018-08-31
  • 打赏
  • 举报
回复
已解决 用的是全文检索
zjcxc 2018-08-16
  • 打赏
  • 举报
回复
涉及到分词什么的,全文检索干的事
卖水果的net 2018-08-16
  • 打赏
  • 举报
回复
数据来做这种大文本的检索,不是最佳的方案。

solr 是个不错选择。
xiaoxiangqing 2018-08-15
  • 打赏
  • 举报
回复
在文本里查,效率比较低
吉普赛的歌 2018-08-15
  • 打赏
  • 举报
回复
引用 4 楼 ryonchen 的回复:
一般用text类型来存储吧


不对, text 是淘汰类型。 nvarchar(max) 对于这种文本才是合适的。
ryonchen 2018-08-15
  • 打赏
  • 举报
回复
一般用text类型来存储吧
吉普赛的歌 2018-08-14
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
id INT IDENTITY(1,1) PRIMARY KEY,
article NVARCHAR(MAX)
)
GO
INSERT INTO t(article) VALUES(N'胡适的英语老师、民国时期自学成才的出版家王云五先生在年轻的时候是这样自学英语写作的:找到一篇英文的名家佳作,熟读几次以后,把它翻译成中文,等过了一星期之后,再依据中文反过来翻译成英文,这个期间绝不查阅英语原文。翻译后再与原文比对,找出自己翻译的错误、失误和不够精良之处。如此反复练习,王云五先生练就了扎实的英文功底,为日后的英语教学和出版事业打下了坚实的基础。..............等等')
GO
SELECT * FROM t WHERE article LIKE N'%错误%' AND article LIKE N'%翻译%'


用数据库, 只能这样了。

或者, 不用数据库, 用 lucene.net 。先分词再搜索。
这个你自己去搜索找资料吧。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧