当前位置:  开发笔记 > 数据库 > 正文

使SQL Server索引编号较小

如何解决《使SQLServer索引编号较小》经验,为你挑选了0个好方法。

我们在项目中使用SQL Server 2005.系统用户可以使用"关键字"搜索某些对象.我们实现这一点的方法是为每个表中可能包含这些"关键字"的重要列创建一个全文目录,然后使用CONTAINS搜索用户在该索引的搜索框中输入的关键字.

因此,举例来说,假设您拥有Movie对象,并且您希望让用户在文章的标题和正文中搜索关键字,然后我们将标题和Plot列都编入索引,然后执行以下操作:

SELECT * FROM Movies WHERE CONTAINS(Title, keywords) OR CONTAINS(Plot, keywords)

(它实际上比这更先进,但没有什么特别复杂的)

一些用户正在为他们的搜索添加数字,例如他们想要找到"终结者2".这里的问题是,据我所知,默认情况下,SQL Server不会索引短字,因此执行如下搜索:

SELECT * FROM Movies WHERE CONTAINS(Title, '"Terminator 2"')

实际上相当于这样做:

SELECT * FROM Movies WHERE CONTAINS(Title, '"Terminator"') <-- notice the missing '2'

而且我们得到了过多的虚假结果.

有没有办法强制SQL Server索引小词?优选地,我宁愿仅索引1,2,21数字.我不知道在何处定义索引标准,或者即使它可能具体如此.


好吧,我这样做了,从列表中删除了"噪音词",现在行为有点不同,但仍然不是你所期望的.

搜索不会用于"终结者2"(我只是这样做,如果我透露我们正在做什么,我的雇主可能不会真的很开心......无论如何,条款有点不同但原理相同) ,我没有得到任何东西,但我知道有包含这两个词的对象.

也许我做错了什么?我从ENG,ENU和NEU(中性)的噪声配置中删除了所有数字1 ... 9,重新生成索引,并尝试搜索.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有