在RavenDB索引中使用Split
我想在索引中使用几个正则表达式。这是一个简化的示例:在RavenDB索引中使用Split,ravendb,Ravendb,我想在索引中使用几个正则表达式。这是一个简化的示例: Map = books => books.Select(x => new {Sentences = Regex.Split(x.Description, "<br>")}) .Select(x => new {Results = x.Sentences.Where(y => Regex.IsMatch(y, "foo"))}) .Where(x =>
Map =
books =>
books.Select(x => new {Sentences = Regex.Split(x.Description, "<br>")})
.Select(x => new {Results = x.Sentences.Where(y => Regex.IsMatch(y, "foo"))})
.Where(x => x.Results.Any())
.Select(x => new {});
我试过了。AsEnumerable(),但没用。可以这样做吗?若要解决此问题,您需要对正在处理的对象调用.AsEnumerable()。选择“关闭” 因此,不要使用Regex.Split(…).Select(…),而是使用Regex.Split(…)。AsEnumerable().Select(…) RavenDB依赖于一个知道如何映射公共扩展方法的内部类 但是,有时它可能无法动态解析扩展方法。要帮助动态解析,请调用.AsEnumerable(),然后将找到扩展方法 您的代码应该如下所示:
Map =
books =>
books.Select(x => new {Sentences = Regex.Split(x.Description, "<br>")})
.AsEnumerable()
.Select(x => new {Results = x.Sentences.Where(y => Regex.IsMatch(y, "foo"))})
.Where(x => x.Results.Any())
.Select(x => new {});
Map=
书籍=>
books.Select(x=>new{sequences=Regex.Split(x.Description,“
”)})
.可计算的()
.Select(x=>new{Results=x.句子。其中(y=>Regex.IsMatch(y,“foo”))})
.Where(x=>x.Results.Any())
.Select(x=>new{});
RavenDB为您提供了一个全文索引,可以将句子拆分成单词。只列出句子,让Lucene引擎为你做这件事会更有用吗?
Map =
books =>
books.Select(x => new {Sentences = Regex.Split(x.Description, "<br>")})
.AsEnumerable()
.Select(x => new {Results = x.Sentences.Where(y => Regex.IsMatch(y, "foo"))})
.Where(x => x.Results.Any())
.Select(x => new {});