首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跨连列的全文搜索?

跨连列的全文搜索?
EN

Stack Overflow用户
提问于 2009-11-30 14:42:12
回答 2查看 2.4K关注 0票数 5

我刚开始免费搜索,所以请原谅新手的问题。假设我有以下全文索引:

代码语言:javascript
复制
Create FullText Index on Contacts(
    FirstName,
    LastName,
    Organization
)
Key Index PK_Contacts_ContactID
Go

我想对连在一起的所有三列进行一个自由文本搜索。

代码语言:javascript
复制
FirstName + ' ' + LastName + ' ' + Organization

所以,例如

搜索Smith

  • Searching
  • jim smith返回所有名为Jim smith ibm的联系人,返回在IBM

工作的所有名为Smith的联系人。

这似乎是一种相当常见的情况。我原以为这是可行的:

代码语言:javascript
复制
Select c.FirstName, c.LastName, c.Organization, ft.Rank
from FreeTextTable(Contacts, *, 'smith ibm') ft
Left Join Contacts c on ft.[Key]=c.ContactID
Order by ft.Rank Desc

但这显然是在执行smith OR ibm;它返回了许多不在IBM工作的史密斯,反之亦然。令人惊讶的是,搜索smith AND ibm会产生相同的结果。

这做我想做的..。

代码语言:javascript
复制
Select c.FirstName, c.LastName, c.Organization
from Contacts c 
where Contains(*, 'smith') and Contains(*, 'ibm')

然后,我不能将来自用户的查询参数化--我必须自己把搜索字符串分解成单词,然后动态地组装...but,这是丑陋和不安全的。

EN

Stack Overflow用户

回答已采纳

发布于 2009-11-30 15:09:06

我通常采用的方法是创建一个搜索视图或计算列(使用触发器),将所有这些值放到一个字段中。

我做的另一件事是使用全文搜索引擎,比如Lucene/Solr。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1820215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档