Sql server 2008 需要有关Sql Server 2008和全文搜索的帮助吗
我在一个表中的单个字段上设置了FTSSql server 2008 需要有关Sql Server 2008和全文搜索的帮助吗,sql-server-2008,full-text-search,Sql Server 2008,Full Text Search,我在一个表中的单个字段上设置了FTS Field: Name NVARHCHAR(350) NOT NULL 现在,当我搜索以下内容时 1 ave 10 ave 我没有得到我期望的结果 首先,将搜索查询1ave转换为“1*”和“ave*”。现在我运行包含(…)查询 然后,随着正确的结果,我也得到了这些不正确的结果 2 Ave (a couple of entries .. but they are all unique entires). 那么,这是如何被找回的呢?那篇文本中没有1*?就
Field: Name NVARHCHAR(350) NOT NULL
现在,当我搜索以下内容时
1 ave
10 ave
我没有得到我期望的结果
首先,将搜索查询1ave
转换为“1*”和“ave*”
。现在我运行包含(…)查询
然后,随着正确的结果,我也得到了这些不正确的结果
2 Ave (a couple of entries .. but they are all unique entires).
那么,这是如何被找回的呢?那篇文本中没有1*
?就像。。这个号码被忽略了
此外,这一点很重要,我删除了对禁止列表的引用,并重建了目录
嗯,我很困惑。有人有什么建议吗?全文搜索索引列中的任何位置都可以出现“1”,它不必直接出现在“Ave”之前(甚至之前),该行中是否还有其他位置的1?全文索引将查找单词的派生词-例如,如果搜索RUN,它可能会找到RUNNING、RAN、RUN等 我想知道它是否决定2接近1,并将其作为接近匹配返回。您应该尝试将查询切换到CONTAINSTABLE查询,以便还可以计算排名以确定哪个答案更接近匹配。然后,您可以确定一个阈值,并过滤掉任何不符合匹配条件的行 编辑:它没有做拐点思维1接近2。我在一个示例表上运行了一个测试查询,如下所示
PK Name
1 1 ave
2 10 ave
3 2 ave
4 12 avenue
5 13 avenue
6 100 ave.
7 200 ave
8 210 avenue
这是我运行的查询
select *
from Table_1
where contains(name, '"1*" and "ave*"')
这是我得到的结果
PK Name
2 10 ave
4 12 avenue
5 13 avenue
6 100 ave.
有趣的是,没有找到表中的第一条记录。(我在SQL 2008开发版上运行了这个)。基于这些结果(没有找到以2开头的内容),我会再次检查您的查询。可能会发布整个查询的全文,包括设置搜索变量的位置。我认为转换后的字符串应为“1*”和“ave*”--缺少“1*上的结尾”正确。好的。修正。一旦你使用通配符(*)全文搜索将停止使用同义词库替换。是的,我很确定情况也是如此。在我重新阅读所有内容之后-看起来原始查询缺少1*后面的引号。我认为,第一个结果缺少,因为StopWords。试着把它关掉。是的,有。。在邮政编码中:(我提出了一个蹩脚的问题。同位语。
PK Name
2 10 ave
4 12 avenue
5 13 avenue
6 100 ave.