关键字在哪个字段中找到? SQL搜索

时间:2009-12-20 17:03:55

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

我正在尝试为我的网站制作详细的搜索引擎 正在多个字段和表中搜索关键字。例如,使用关键字:

  • uludag
  • 大学

我的education表格中的addresscontactnamecontactsurnameMembers字段正在搜索这些关键字。

我必须这样做,因为用户必须只有一个输入字段。

在此之前一切正常,我想要做的是向用户显示在哪个字段中找到此关键字?我想显示一个名为“Hits”的字段。

我正在使用SQL Server 2008和全文搜索。

您可以通过xing高级搜索部分查看我想要做的示例。

1 个答案:

答案 0 :(得分:2)

您将知道在哪个字段中找到它,因为您知道在哪个字段中搜索过。如果您不关心哪个字段包含该值,则使用多列语法:

SELECT ...
FROM Members
WHERE CONTAINS((education, address, contactname, contactsurname), 'uludag');

但是如果你想在特定领域进行搜索,那么你只需要指定你感兴趣的领域:

SELECT...
FROM Members
WHERE CONTAINS(education, 'uludag');

您可以组合多个字段并通过合并多个查询来保留原始字段:

SELECT 'education' as [field origin],... 
FROM Members
WHERE CONTAINS(education, 'uludag')
UNION ALL
SELECT 'address', ...
FROM Members
WHERE CONTAINS(address, 'uludag')
...
UNION ALL
SELECT 'contactsurname', ...
FROM Members
WHERE CONTAINS(contactsurname, 'uludag');

最后,您可以使用第一个表单(一次在所有字段中搜索),然后在客户端中检查哪个字段包含搜索词。