Sql server 2008 需要有关Sql Server 2008和全文搜索的帮助吗

Sql 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*?就

我在一个表中的单个字段上设置了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*
?就像。。这个号码被忽略了

此外,这一点很重要,我删除了对禁止列表的引用,并重建了目录


嗯,我很困惑。有人有什么建议吗?

全文搜索索引列中的任何位置都可以出现“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.