如何使用全文搜索(FTS)字段过滤ADO.NET数据?

时间:2010-01-22 13:46:55

标签: ado.net full-text-search sql-like

我们正在使用ADO.NET dataservices&正在构建基于URL的过滤器。 示例:/ Customers?filter = City eq'London'

我们现在需要过滤全文“标签”字段。 正在寻求:/客户?过滤器=标记为“友好”

问题: ADO.NET没有LIKE运算符。 ADO.NET似乎不喜欢FTS (它没有找到匹配 - 因为它没有通过CSV进行解析)

任何想法如何使这项工作? THX

2 个答案:

答案 0 :(得分:1)

ADO.NET数据服务确实支持“LIKE”类型的运算符。

这样的查询:

http://localhost/EntitiesService.svc/CalEvents?$filter=indexof(Subject,'fO') ge 0

http://localhost/EntitiesService.svc/CalEvents?$filter=substringof('fox',Subject) eq true

或LINQ版本:

 var result  = _context.CalEvents.Where(ce => ce.Subject.Contains(searchTerm))

可能你正在寻找什么。它们使用“LIKE”运算符生成SQL查询,并在搜索项中添加“%”。所以,他们就像“喜欢”操作员。

不支持带有“包含”运算符的FTS ..我没有时间检查确定但我认为我不久前看过它。

更多信息: http://www.odata.org/developers/protocols/uri-conventions

答案 1 :(得分:0)

我本身并没有使用ADO.NET数据服务,但是,在使用全文搜索时,我发现CONTAINS运算符功能更强大。无论是在临时的sql字符串中,还是在存储过程中。