【发布时间】:2010-07-10 02:21:12
【问题描述】:
我有一些这样的搜索查询:
乔治而不是华盛顿或亚伯拉罕
狗或猫而不是狼
对于这些搜索,我希望返回 George 或 Abraham 但不是 Washington 等的结果。
基本上,我想获取字符串并能够将上下文搜索提交到我的全文目录存储过程搜索。
我假设我应该使用 Regex,但我对 C# 中的 Regex 非常不熟悉。
我找到了这篇文章:http://support.microsoft.com/kb/246800,我认为这是我需要做的,但我希望我能在实施方面得到一些帮助。
假设您将字符串作为参数并希望返回一个字符串:
string input = 'George Washington AND NOT Martha OR Dog';
private string interpretSearchQuery(input)
{
// HALP!
/* replace ' AND ' | ' AND NOT ' with
* " AND "
* " AND NOT "
*
* replace ' OR ' | ' OR NOT ' with
* " OR "
* " OR NOT "
*
* add " to beginning of string and " to end of string
*/
return '"George Washington" AND NOT "Martha" OR "Dog"';
}
【问题讨论】:
-
interpretSearchQuery到底应该做什么?输入是什么?预期的输出是什么? -
我会在 Space 上拆分它,并且任何不是 AND NOT 或 OR 我会在前面加上“LIKE '%”并附加“%'”的数组项,然后用空格将它内爆回来并将其添加到 sql 查询的末尾。好吧,实际上我不会做这样的事情,但谁知道......它可能会起作用。
-
@Oded 我添加了更多信息,抱歉。基本上我想获取输入并将其转换为可用于从 Sql Server 全文搜索中获取正确结果的方式。
标签: c# sql-server full-text-search