Sitecore Search API无法在字符串字段

时间:2016-08-10 09:45:01

标签: solr sitecore

我对搜索上下文有一些奇怪的问题。 在d.Path.Starts存在的情况下,我正在查询来自查询的结果。

我看到路径字段包含完整路径并且它在索引中是正确的/我想找到字段女巫是从某个sitecore路径开始,但没有运气。 我在后端使用Solr。

string path = "/sitecore/blabla"; //just for example
var contextIndex = ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = contextIndex.CreateSearchContext())
{
    var results = context.GetQueryable<PackageDateDocument>()
                .Where(d => (d.TemplateName == _templatename) && (d.Language == "en") && (d.Path.StartsWith(path)));
    return results;
}

我的查询有什么问题?

更新1: 我的Solr版本是4.4.0 好像它与/ char有关 如果使用Solr UI,则下一个查询适用于add / chars

"q": "_fullpath:\\/sitecore\\/content\\/system\\/balabla* && _language: \"en\" && _templatename: \"My Template\"",

2 个答案:

答案 0 :(得分:1)

好的,Sitecore支持告诉我这个问题已在Sitecore 8 SP3中修复))) 这是solr string里面的一些问题 他们建议在查询中使用项目ID和路径字段。

var results = context.GetQueryable<PackageDateDocument>()
                    .Where(d => (d.TemplateName == _templatename)
                            && (d.Language == rootTour.Language.Name) && d.Paths.Contains(item.ID));

答案 1 :(得分:0)

&#34; /&#34; char应该在您的查询中转义。这应该已经在最新的Sitecore版本中得到解决。 对于早期版本,建议使用包含路径。

相关问题