Tag: sitecore7.5

如何使用Solr Provider控制Sitecore ContentSearch中嵌套查询的优先级?

版本详细信息:我正在使用Siter 7.5 build 141003,使用Solr v4.7作为搜索引擎/索引服务器。 我也使用标准的Sitecore Solr提供程序,没有自定义索引器。 目标目标:我使用Sitecore ContentSearch LINQ和PredicateBuilder来编译一些灵活的嵌套查询。 目前,我需要在特定的“根项目”中进行搜索,同时排除名称中带有“文件夹”的模板,也不包括路径中带有“/ testing”的项目。 在某些时候,“根项目”可能不止一个项目,路径也可以包含(目前只是“/ testing”。在这些情况下,想法是使用PredicateBuilder构建一个外部“AND”谓词与内部“或“s”表示多个“根项目”和路径排除项。 问题:目前,我正在处理有关嵌套顺序和这些谓词/条件优先级的问题。 我一直在测试几种方法和组合,但我一直遇到的问题是!TemplateName.Contains和Item [“_ fullpath”]。包含优先于Paths.Contains,最终每次产生0结果。 我正在使用Search.log检查查询输出,我一直在手动测试Solr管理员,对它运行查询以比较结果。 下面,您将找到我尝试使用Sitecore Linq的组合示例,以及它们为Solr生成的查询。 原始代码示例: 使用列表进行根项目的原始测试 // sometimes will be 1, sometimes will be multiple var rootItems = new List { pathID }; // simplified to 1 item for now var query = context.GetQueryable(); var folderFilter = PredicateBuilder.True().And(i […]