C# 如何在sitecore中使用ContentSearchAPI查询多个字段
我正在使用Sitecore ContentSearch API。我为一个项目中的一组字段编制了索引。是否可以同时查询多个字段C# 如何在sitecore中使用ContentSearchAPI查询多个字段,c#,lucene,sitecore,sitecore7,C#,Lucene,Sitecore,Sitecore7,我正在使用Sitecore ContentSearch API。我为一个项目中的一组字段编制了索引。是否可以同时查询多个字段 public static List<MovieSearchResultItem> SearchResults(string txtQuery) { using (var context = ContentSearchManager.GetIndex(indexName).CreateSearchContext())
public static List<MovieSearchResultItem> SearchResults(string txtQuery)
{
using (var context = ContentSearchManager.GetIndex(indexName).CreateSearchContext())
{
var query = context.GetQueryable<MovieSearchResultItem>().Where(result => result.Body.Contains(txtQuery)).ToList();
return query;
}
}
公共静态列表搜索结果(字符串txtQuery)
{
使用(var context=ContentSearchManager.GetIndex(indexName.CreateSearchContext())
{
var query=context.GetQueryable().Where(result=>result.Body.Contains(txtQuery)).ToList();
返回查询;
}
}
在上面的查询中,我只是使用Body字段。如何包含多个字段。我的搜索数据可能是title、Body或其他字段,因此我想检查所有三个字段。尝试向
Where
子句添加另一个条件:
var query = context.GetQueryable<MovieSearchResultItem>()
.Where(result => result.Body.Contains(txtQuery)
|| result.Title.Contains(txtQuery)
|| result.OtherField.Contains(txtQuery)).ToList();
var query=context.GetQueryable()
.Where(result=>result.Body.Contains(txtQuery)
||result.Title.Contains(txtQuery)
||result.OtherField.Contains(txtQuery)).ToList();
尝试在Where
子句中添加另一个条件:
var query = context.GetQueryable<MovieSearchResultItem>()
.Where(result => result.Body.Contains(txtQuery)
|| result.Title.Contains(txtQuery)
|| result.OtherField.Contains(txtQuery)).ToList();
var query=context.GetQueryable()
.Where(result=>result.Body.Contains(txtQuery)
||result.Title.Contains(txtQuery)
||result.OtherField.Contains(txtQuery)).ToList();
尝试在Where
子句中添加另一个条件:
var query = context.GetQueryable<MovieSearchResultItem>()
.Where(result => result.Body.Contains(txtQuery)
|| result.Title.Contains(txtQuery)
|| result.OtherField.Contains(txtQuery)).ToList();
var query=context.GetQueryable()
.Where(result=>result.Body.Contains(txtQuery)
||result.Title.Contains(txtQuery)
||result.OtherField.Contains(txtQuery)).ToList();
尝试在Where
子句中添加另一个条件:
var query = context.GetQueryable<MovieSearchResultItem>()
.Where(result => result.Body.Contains(txtQuery)
|| result.Title.Contains(txtQuery)
|| result.OtherField.Contains(txtQuery)).ToList();
var query=context.GetQueryable()
.Where(result=>result.Body.Contains(txtQuery)
||result.Title.Contains(txtQuery)
||result.OtherField.Contains(txtQuery)).ToList();
非常简单,您可以添加如下表达式:
var query = context.GetQueryable<MovieSearchResultItem>().Where(result => result.Body.Contains(txtQuery) || result.Title.Contains(txtQuery))
var query=context.GetQueryable().Where(result=>result.Body.Contains(txtQuery)| result.Title.Contains(txtQuery))
或者您可以使用PredicateBuilder,更多信息请参见此处:
非常简单,您可以添加如下表达式:
var query = context.GetQueryable<MovieSearchResultItem>().Where(result => result.Body.Contains(txtQuery) || result.Title.Contains(txtQuery))
var query=context.GetQueryable().Where(result=>result.Body.Contains(txtQuery)| result.Title.Contains(txtQuery))
或者您可以使用PredicateBuilder,更多信息请参见此处:
非常简单,您可以添加如下表达式:
var query = context.GetQueryable<MovieSearchResultItem>().Where(result => result.Body.Contains(txtQuery) || result.Title.Contains(txtQuery))
var query=context.GetQueryable().Where(result=>result.Body.Contains(txtQuery)| result.Title.Contains(txtQuery))
或者您可以使用PredicateBuilder,更多信息请参见此处:
非常简单,您可以添加如下表达式:
var query = context.GetQueryable<MovieSearchResultItem>().Where(result => result.Body.Contains(txtQuery) || result.Title.Contains(txtQuery))
var query=context.GetQueryable().Where(result=>result.Body.Contains(txtQuery)| result.Title.Contains(txtQuery))
或者您可以使用PredicateBuilder,更多信息请参见此处:
我可以推荐PredicateBuilder。例如:
Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>();
predicate = predicate.And(p => p.TemplateName.Equals("News"));
predicate = predicate.And(p => p.Language == Context.Language.Name);
List<SearchResultItem> results = context
.GetQueryable<SearchResultItem>()
.Where(predicate)
.ToList();
Expression predicate=PredicateBuilder.True();
predicate=predicate.And(p=>p.TemplateName.Equals(“News”));
谓词=谓词和(p=>p.Language==Context.Language.Name);
列出结果=上下文
.GetQueryable()
.Where(谓词)
.ToList();
我可以推荐PredicateBuilder。例如:
Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>();
predicate = predicate.And(p => p.TemplateName.Equals("News"));
predicate = predicate.And(p => p.Language == Context.Language.Name);
List<SearchResultItem> results = context
.GetQueryable<SearchResultItem>()
.Where(predicate)
.ToList();
Expression predicate=PredicateBuilder.True();
predicate=predicate.And(p=>p.TemplateName.Equals(“News”));
谓词=谓词和(p=>p.Language==Context.Language.Name);
列出结果=上下文
.GetQueryable()
.Where(谓词)
.ToList();
我可以推荐PredicateBuilder。例如:
Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>();
predicate = predicate.And(p => p.TemplateName.Equals("News"));
predicate = predicate.And(p => p.Language == Context.Language.Name);
List<SearchResultItem> results = context
.GetQueryable<SearchResultItem>()
.Where(predicate)
.ToList();
Expression predicate=PredicateBuilder.True();
predicate=predicate.And(p=>p.TemplateName.Equals(“News”));
谓词=谓词和(p=>p.Language==Context.Language.Name);
列出结果=上下文
.GetQueryable()
.Where(谓词)
.ToList();
我可以推荐PredicateBuilder。例如:
Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>();
predicate = predicate.And(p => p.TemplateName.Equals("News"));
predicate = predicate.And(p => p.Language == Context.Language.Name);
List<SearchResultItem> results = context
.GetQueryable<SearchResultItem>()
.Where(predicate)
.ToList();
Expression predicate=PredicateBuilder.True();
predicate=predicate.And(p=>p.TemplateName.Equals(“News”));
谓词=谓词和(p=>p.Language==Context.Language.Name);
列出结果=上下文
.GetQueryable()
.Where(谓词)
.ToList();
谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。