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