我正在尝试为我的网站制作详细的搜索引擎 正在多个字段和表中搜索关键字。例如,使用关键字:
我的education
表格中的address
,contactname
,contactsurname
和Members
字段正在搜索这些关键字。
我必须这样做,因为用户必须只有一个输入字段。
在此之前一切正常,我想要做的是向用户显示在哪个字段中找到此关键字?我想显示一个名为“Hits”的字段。
我正在使用SQL Server 2008和全文搜索。
您可以通过xing高级搜索部分查看我想要做的示例。
答案 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');
最后,您可以使用第一个表单(一次在所有字段中搜索),然后在客户端中检查哪个字段包含搜索词。