C# RavenDb文档中嵌套集合的查询
我有一个使用Lucene extensions的过滤方法,用于具有以下结构的C# RavenDb文档中嵌套集合的查询,c#,lucene,ravendb,C#,Lucene,Ravendb,我有一个使用Lucene extensions的过滤方法,用于具有以下结构的Store文档列表: public class Store { public string Id { get; set; } public string Name { get; set; } public string Url { get; set; } public string Address { get; set; } public ICollection<Produ
Store
文档列表:
public class Store {
public string Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public string Address { get; set; }
public ICollection<Product> Products { get; set; }
}
public class Product {
public string Name { get; set; }
public double Price { get; set; }
}
公共类存储{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共字符串Url{get;set;}
公共字符串地址{get;set;}
公共ICollection产品{get;set;}
}
公共类产品{
公共字符串名称{get;set;}
公共双价{get;set;}
}
我的筛选方法:
public IEnumerable<Store> Filter(string term = null)
{
var query = session.Advanced.DocumentQuery<Store>();
if (!string.IsNullOrEmpty(term))
{
var search = $"*{term}*";
var escapeQueryOptions = EscapeQueryOptions.AllowAllWildcards;
query = query
.Search(n => n.Name, search, escapeQueryOptions)
.OrElse()
.Search(n => n.Url, search, escapeQueryOptions)
.OrElse()
.Search(n => n.Address, search, escapeQueryOptions);
}
return query;
}
public IEnumerable筛选器(字符串项=null)
{
var query=session.Advanced.DocumentQuery();
如果(!string.IsNullOrEmpty(term))
{
var search=$“*{term}*”;
var escapeQueryOptions=escapeQueryOptions.AllowWallWildcards;
查询=查询
.Search(n=>n.Name,Search,escapeQueryOptions)
.OrElse()
.Search(n=>n.Url,Search,escapeQueryOptions)
.OrElse()
.Search(n=>n.地址、搜索、escapeQueryOptions);
}
返回查询;
}
现在,我想允许按产品名称进行筛选,但我不知道如何用lucene表达这一点。您使用DocumentQuery下拉到lucene有什么原因吗?您可以使用标准API进行全文搜索和过滤?