我在我的数据库上进行全文搜索。
是否可以在单词的中间搜索某些文字?
例如,我有一个包含以下文本的列描述:
Revolution
是否有可能搜索“EVO”并让它在单词Revolution中找到它,或者我是不是喜欢这样做:
SELECT * FROM Table WHERE Description LIKE '%EVO%'
是否有与上述查询相当的FTS?
修改
我想清楚说明我要问的是什么,因为看起来有些人可能会感到困惑。我相信 SQL Server FTS只能在单词的开头搜索(前缀搜索)。所以,如果我查询:
SELECT * FROM Table WHERE CONTAINS(Description, '"Revo*"')
然后它会找到革命这个词。我想知道是否有可能在单词的MIDDLE中搜索某些内容。不是最后的。不是一开始。从它看起来这是不可能的,这是有道理的,因为SQL服务器如何索引这个,但我只是想确定。
答案 0 :(得分:1)
您可以使用CONTAINS
。看到这个链接
答案 1 :(得分:0)
执行此搜索的唯一方法是添加单词的“旋转”细分。 例如,“运动”一词将分解为 9 个新“词”,例如: “运动” “骚动” “情绪” “运动” “选项” “提” “离子” “在” “n” 因此,现在您可以将此表格放入全文搜索(或使用单词的所有这些部分创建新列)以快速找到它。
我写了一篇没有 FTS 的论文(但它是法语): https://blog.developpez.com/sqlpro/p13123/langage-sql-norme/like-mot-ou-les-index-rotatifs
答案 2 :(得分:-2)
您可以使用CONTAINS
代替LIKE
。
SELECT *
FROM Table
WHERE CONTAINS(Description, '"EVO*"')