sql server 2005 全文搜索 问题

yongfa365 2009-06-18 10:25:22
要搜索的词在文本最后的话,就检索不出来,如:

...全文
28 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongfa365 2009-06-22
  • 打赏
  • 举报
回复
sql 2005 能自定义分词吗,或自己怎么制作分词文件
yongfa365 2009-06-19
  • 打赏
  • 举报
回复
我换成nvarchar后,OK了

现在的问题变了,可能关系的分词的问题了:

---------------------------------------------------------
select address from kehu
where address like '%办公室%' and id not in
(select id from kehu
where contains(address,'办公室'))

唐家岭外办公室
唐家伶村外办公室
冶金部东路XX号门外办公室
唐家岭外办公室
---------------------------------------------------------
select address from kehu
where address like '%豆各庄%' and id not in
(select id from kehu
where contains(address,'豆各庄'))

豆各庄家机站院内

---------------------------------------------------------
select address from kehu
where address like '%望京%' and id not in
(select id from kehu
where contains(address,'望京'))

望京西园111-1111
望京西园一区111-1111
望京西园三区111楼1111
望京西园三区111-111室
望京西园三区111号111室
望京西园三区111楼111室
望京西园111楼1111
望京西园供热厂对面
---------------------------------------------------------
---------------------------------------------------------

这样看来真是分词问题,我想他能不能自定义分词,如果能的话,那就太好了,我自己定义
yongfa365 2009-06-19
  • 打赏
  • 举报
回复
varchar
yongfa365 2009-06-18
  • 打赏
  • 举报
回复
@JonasFeng

这个我试过了,结果还是一样
记录数没变
JonasFeng 2009-06-18
  • 打赏
  • 举报
回复
 select address from kehu
where address like '%办公室%' and id not in
(select id from kehu
where contains(address,'*办公室*'))


这样就OK了。
fwacky 2009-06-18
  • 打赏
  • 举报
回复

有点头疼,帮定!
yongfa365 2009-06-18
  • 打赏
  • 举报
回复
理论上来说:
select address from kehu where address like '%办公室%'
和:
select address from kehu where contains( address , '办公室')

是一样的

但现在第二种记录数比第一种少

并且,我看了下,少的记录的特点是,如果要搜索的关键词都在这段文本末
nalnait 2009-06-18
  • 打赏
  • 举报
回复
好像只支持英文
聪明的一休 2009-06-18
  • 打赏
  • 举报
回复
下面也用like呢

not int (select id from kehu where address like '%办公室')
人鱼传说 2009-06-18
  • 打赏
  • 举报
回复
请问楼主,address字段是什么类型号
ai_li7758521 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 flairsky 的回复:]
全文索引的用处不是简单的varchar匹配。他作用的对象是文章。也就是说查询的词语必须具备语义。
目前对中文支持的还不是很好。你这情况属于全文索引判断办公室在最后是没有意义的。用英文好点。
如果你需要高精度匹配。不建议用全文索引,慢,且不全。
[/Quote]大篇幅的文章,优势才能比较突出。
yongfa365 2009-06-18
  • 打赏
  • 举报
回复
用全文搜索还是很快的,
现在为止就只发现一个这样的问题,如果这个问题可以解决,我还是想用他


不过,真可能是 flairsky所说,他最适合的是大篇幅的文章
flairsky 2009-06-18
  • 打赏
  • 举报
回复
全文索引的用处不是简单的varchar匹配。他作用的对象是文章。也就是说查询的词语必须具备语义。

目前对中文支持的还不是很好。你这情况属于全文索引判断办公室在最后是没有意义的。用英文好点。

如果你需要高精度匹配。不建议用全文索引,慢,且不全。
yongfa365 2009-06-18
  • 打赏
  • 举报
回复
同志们,帮顶下

22,209

社区成员

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

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