- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在启用了文件流的 varchar(max) 类型列上创建了全文索引。文件流包含 JPG、TIF、PDF 和 XML 等数据(尽管我认为这与问题大多无关)。
我创建了两个查询,允许我在索引上进行搜索。
全文搜索#1--
select
parentObj.ObjectID as 'GroupingID',
parentObj.Name as 'Grouping',
childObj.ObjectID as 'FileObjID',
childObj.Name as 'FileName',
fs.FileStreamID
from dbo.dat_FileStream fs
inner join dbo.dat_Object childObj
on fs.ObjectID = childObj.ObjectID
inner join dbo.dat_Collection c
on fs.ObjectID = c.ObjectID
inner join dbo.dat_Object parentObj
on c.ParentID = parentObj.ObjectID
where contains(FileStreamData, @srchTerm)
and parentObj.ObjectTypeID = 1
ORDER BY 'Grouping'
全文搜索#2--
select
KEY_TBL.RANK,
parentObj.ObjectID as 'GroupingID',
parentObj.Name as 'Grouping',
childObj.ObjectID as 'FileObjID',
childObj.Name as 'FileName',
fs.FileStreamID
from dbo.dat_FileStream fs
inner join containstable(dbo.dat_FileStream, FileStreamData, @srchTerm, 1000) as KEY_TBL
on fs.FileStreamID = KEY_TBL.[KEY]
inner join dbo.dat_Object childObj
on fs.ObjectID = childObj.ObjectID
inner join dbo.dat_Collection c
on fs.ObjectID = c.ObjectID
inner join dbo.dat_Object parentObj
on c.ParentID = parentObj.ObjectID
where parentObj.ObjectTypeID = 1
ORDER BY 'Grouping'
两个全文搜索之间唯一显着的区别是查询 #1 使用 contains,而查询 #2 使用 containstable。
我的问题是两个查询并不总是产生相同的结果。例如,如果我搜索短语“独立承包商”,查询 #1 将生成 10 个不同文档(PDF 和 XML)的结果集,而查询 #2 将仅生成 6 个结果集。这似乎是规则:查询 #1 总是比查询 #2 产生更多的结果,而查询 #2 总是产生与查询 #1 完全相同的匹配项。
查询#1 - 搜索“独立承包商”结果:
4262 AAA-00-12 4561 AAA-00-12.pdf 4235
4316 AAA-00-15 4753 AAA-00-15.pdf 4427
4316 AAA-00-15 4754 AAA-00-15.xml 4428
3873 AAA-00-19 4784 AAA-00-19.pdf 4458
3903 AAA-00-22 6795 AAA-00-22.pdf 6459
3953 AAA-00-24 6899 AAA-00-24.pdf 6563
3953 AAA-00-24 6900 AAA-00-24.xml 6564
4842 AAA-00-9 4905 AAA-00-9.pdf 4577
4842 AAA-00-9 4906 AAA-00-9.xml 4578
4057 AAA-0001 4260 AAA-0001.pdf 3936
查询 #2 - 搜索“独立承包商”结果:
19 4262 AAA-00-12 4561 AAA-00-12.pdf 4235
126 4316 AAA-00-15 4754 AAA-00-15.xml 4428
126 4316 AAA-00-15 4753 AAA-00-15.pdf 4427
116 3873 AAA-00-19 4784 AAA-00-19.pdf 4458
125 3903 AAA-00-22 6795 AAA-00-22.pdf 6459
57 3953 AAA-00-24 6900 AAA-00-24.xml 6564
57 3953 AAA-00-24 6899 AAA-00-24.pdf 6563
最佳答案
top_n_by_rank
Specifies that only the nhighest ranked matches, in descending order, are returned. Applies only when an integer value, n, is specified. If top_n_by_rank is combined with other parameters, the query could return fewer rows than the number of rows that actually match all the predicates.
尝试在没有顶部的情况下运行,看看它是否匹配CONTAINS
。
关于tsql - contains 和 containstable 之间有显着区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208075/
我在表格上使用 containstable() 进行搜索,但如果我在搜索字符串中只输入单个字符,它就不起作用。以下是我正在使用的查询。 DECLARE @FreeTextSearch VARCHAR(
我有一个包含很多字段的表。为了搜索此表中的信息,我使用全文搜索。当我尝试查找电话号码或 Skype 名称字段中存在三个零的行时,我也使用正确的记录获取包含一些带点和数字的字符串的记录(例如 strin
我有一个搜索查询,它采用用户输入的短语并应返回结果,这是一个示例: SELECT rank,[KEY] FROM CONTAINSTABLE(tblproduct, (title,subtitle,p
我正在使用CONTAINSTABLE搜索两个表列。一旦搜索包含“the”、“for”、“a”等小词,即使它们实际出现在列中,搜索也不会返回任何结果。 简单的例子。正在搜索的列包含文本。 “系统需要升级
这个问题是关于 SQL Server's FTS ContainsTable . 为了重现这个问题,我们可以使用下面的脚本来创建一个表并用地址填充它。 CREATE TABLE Address (Fu
我们有一个有趣的问题,我希望有人能帮助解释一下。在高层次上,问题如下: 以下查询快速执行(1 秒): SELECT SA.* FROM cg.SEARCHSERVER_ACTYS AS SA JOIN
这是我的 Previous Query 的延续 动态链接库 CREATE TABLE [dbo].[t]( [words] [varchar](1000) NULL, [id] [in
例如,我有一个表Companies。其中有一个字段FullName,我在该字段上获得了全文索引。然后我用 CONTAINSTABLE 和 @search_word 加入该表,例如 "company*"
我正在使用全文搜索在 AdventureWorks 数据库中游玩。在 production.ProductDescription 中,我试图搜索“mountain”和“replacements”。 我
我有一个表格,其中包含可以在 sql-server-2008 中搜索的广告。请参阅以下代码段。 ad_search 表中的 is_searchable 基本上是该广告是否应包含在搜索中的标志。 下面的
我正在使用 SQL Server 2008 动态链接库 CREATE TABLE [dbo].[t]( [words] [varchar](1000) NULL, [id] [int]
我们有一个返回此内容的过程: SELECT TOP 15 SearchName, AlternateName, CountryName, StateProvince, Latitude, Longit
我惊讶地发现 CONTAINS 或 CONTAINSTABLE 似乎都不支持如下所示的语法,您在其中为最后一个搜索条件参数传递列名称。 SELECT * FROM dbo.Articles AS a
我正在运行一个 TSQL 查询,该查询使用像这样的 CONTAINSTABLE 语句 CONTAINSTABLE(, , '01100011') 这给了我正确的结果。但是,如果我使用 CONTAINS
我在启用了文件流的 varchar(max) 类型列上创建了全文索引。文件流包含 JPG、TIF、PDF 和 XML 等数据(尽管我认为这与问题大多无关)。 我创建了两个查询,允许我在索引上进行搜索。
我有一个非常基本的场景,但我所读到的内容听起来使用 SQL Server 全文目录和索引并不容易。 我有 2 列,名字和姓氏。我想支持对它们的全文搜索,这样如果有人输入“John Smith”,则第一
我正在努力寻找解决方案以改进字符串搜索过程,我选择了FULL-TEXT INDEX 策略。 但是,在实现它之后,我仍然可以看到在使用多个带有 OR 子句的全文索引表使用多个字符串进行搜索时,性能会受到
我在自动完成下拉列表上使用存储过程来检索客户列表。一些客户的名字中有一个“&”(符号)符号,例如“H&M”、“Marks & Spencers”和用户希望在“&”符号上进行搜索。 当我直接使用 & 符
我有一个非常特殊的案例。我的 ASP.NET 页面调用我们的存储过程,该过程对我们的数据库执行全文搜索查询。一些经常搜索的字符串包含一个符号,因为我们产品的一些品牌(也包括知名品牌)的名称中有一个 &
我想进行查询以检索具有 NEAR 语法的人。当我搜索第二个单词中包含字母 N 的任何文本时,结果始终为空。 我有两个人 Ricardo 在 table 上登记,“Ricardo Mova”和“Rica
我是一名优秀的程序员,十分优秀!