Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在sitecore中使用ContentSearchAPI查询多个字段_C#_Lucene_Sitecore_Sitecore7 - Fatal编程技术网

C# 如何在sitecore中使用ContentSearchAPI查询多个字段

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())

我正在使用Sitecore ContentSearch API。我为一个项目中的一组字段编制了索引。是否可以同时查询多个字段

 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();

谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。谢谢你的帮助。