我正在C#中执行raven查询,并使用Where()和Search()扩展方法。 我需要这两个功能,因为我只需要返回具有特定Guid字段的索引,以及存在于文本正文中的文本。 不幸的是,Where扩展方法似乎与Search扩展方法不兼容。当我将它们组合起来时,我得到一个像这样的Lucene查询:
Query: FeedOwner:25eb541c\-b04a\-4f08\-b468\-65714f259ac2 MessageBody:<<request*>>
这似乎完全忽略了标准中的'MessageBody'部分 - 所以我在'自由文本'中使用的约束并不重要,它不会使用它。
我已经单独使用'搜索'进行测试,并且它有效 - 所以它本身就是自由文本搜索的问题 - 只需将两者结合起来。
答案 0 :(得分:8)
感谢Raven @ GoogleGroups上的@Tobias指出了我正确的方向 - 有一个选项可以定义Where和Search子句的组合方式:
Query<T>.Search(candidate => candidate.MessageBody, queryString + "*", options: SearchOptions.And);