C# 如何在sitecore中进行查询

C# 如何在sitecore中进行查询,c#,jquery,sitecore,C#,Jquery,Sitecore,我试图在使用Ajax脚本时查询Sitecore中的某个字段。如果使用以下值对脚本进行硬编码,则脚本可以工作: public void ProcessRequest(HttpContext context) { JOBject j = new JObject( new JProperty("test", 10), new JProperty("test1", 20) ); context.Response.ContentType = "applicatio

我试图在使用Ajax脚本时查询Sitecore中的某个字段。如果使用以下值对脚本进行硬编码,则脚本可以工作:

public void ProcessRequest(HttpContext context)
{
    JOBject j = new JObject(
    new JProperty("test", 10),
    new JProperty("test1", 20)
    );

    context.Response.ContentType = "application/json";
    context.Response.Write(j.ToString(Formatting.None));
}

但我要做的是在有输入时找到一个特定的值。因此,查询将搜索某个模板ID,然后在找到该模板时搜索特定字段,比如说“Book”,如果该字段与用户输入的值匹配,则会在同一项目上显示“Book Number”字段,该字段位于Sitecore中创建的同一项目上

            try {
                $.ajax({
                  type:"POST",
                  url:"/Test/Test.ajax.ashx",
                  data: {"field":$('#input').val()},
                  cache:false,
                  dataType:'json',
                  success: function(data, status, xhr) {
                    if (data.test== '' || data.test1== '') alert('nothing found');
                    else {
                      $('#test').html(data.test);
                      $('#test1').html(data.test1);
                    }
                  }
                });
            }catch (e) {
                alert(e.message);
            }

使用Lucene搜索上下文,您可以使用如下代码。这将查找基于给定模板Id的所有项目

using (var context = ContentSearchManager.GetIndex(Search.MasterIndex).CreateSearchContext())
        {
            IQueryable<SearchResultItem> query = context.GetQueryable<SearchResultItem>();
            var computedLanguage = Sitecore.Context.Language.CultureInfo.Name.Replace("-", String.Empty);

            SearchResults<SearchResultItem> results = null;
            query = query.Where(x => x.TemplateId == new ID("{659B67C6-4810-4A22-B9E8-9463005113D6}"));

            results = query.GetResults();
}

有几个过滤器可以用于Linq对象

第二个发生了什么?这可能会对您有所帮助;)。在Sitecore中,是否希望Sitecore搜索查询按模板Id进行搜索?或者帮我打这个ajax电话?谢谢。按模板ID搜索
query = query.Where(x => x.TemplateId == new ID("{659B67C6-4810-4A22-B9E8-9463005113D6}"))
                .Where(x => x.Path.Contains("/Sitecore/Content"));