0

根据标题,我正在寻找一种在等效基础上搜索数据的方法

即用户搜索值 20" 它还将搜索 20 英寸、20 英寸等...

我看过可能使用全文搜索和同义词库,但必须建立自己的等价库

还有其他我应该考虑的选择吗?或者是否已经编写了常见的符号/单词等价库?

编辑:

我不是说like关键字和通配符

如果我的数据是
20英寸宽的管道 20 英寸宽的管道
-注意::(这是 2 个单引号)
20 厘米宽
的管道 20 英寸宽
的管道20 英寸宽的管道宽的

我想搜索“20 英寸”并返回20 英寸宽的
管道20 英寸宽
的管道
20 英寸宽
的管道 20 英寸宽的管道

4

1 回答 1

0

只是回答这个问题,以防其他人遇到它,因为我终于弄明白了。

我最终使用 FTS 词库将等价分配给英寸英寸和“,这对英寸和英寸非常有效,但当我搜索 6 时不会返回任何结果”

最终发现,我遇到的根本问题是,诸如 " 之类的字符被全文搜索视为分词器。

我发现自定义字典项似乎覆盖了语言分词器,因此引入了一个名为 Custom0009.lex 的文件,其中包含几行 " 以及我想要包含的一些其他字符/术语,这些字符/术语在 C:\Program Files\ Microsoft SQL Server\{instance name}\MSSQL\Binn 并重新启动 fdhost 并重建索引允许我搜索

select * from tbldescriptions where FREETEXT(MainDesc,'"')

或者

select * from tbldescriptions where contains(MainDesc,'FORMSOF(Thesaurus,"""")')

注意包含一个的双“”,因为搜索词在“已经需要转义才能看到。

于 2015-07-22T13:44:03.247 回答