在Sql server全文搜索中单词之间分开

时间:2014-01-03 14:24:46

标签: sql sql-server full-text-search sql-server-2012

我使用sql server 2012并在Document表的Description字段中进行全文搜索。

我无法通过以下查询找到坚持字母字符的数字:

select * 
from document
where contains (Description,'"123"')

如何在数字和字母之间分开。

某些数字不应分开,例如日期2014/01/01

我有波斯语描述。

提前致谢

2 个答案:

答案 0 :(得分:0)

您是否尝试过NEAR搜索?

    select * 
    from document
    where contains (Description,'123 NEAR abc')

答案 1 :(得分:0)

Word breakers是处理此方案的最有效方法。它们定义了索引文本时字边界的存在位置。 (例如:默认的断字符索引“守夜人”为[the] [dog] [catcher])。您可以创建自定义分词系统以分割数字和字母(例如:“123abc”变为[123] [abc])。这将使搜索“123”匹配“123abc”。

不幸的是我没有一个例子可以展示。我建议您从上面的链接开始,并从下面的链接开始查看Windows Search SDK文档。 (MSSQL和Windows Search都使用相同的技术。)

Windows Search Developer's Guide

Windows Search: Extending the Index