Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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 Lucene搜索结果中排除上下文项 问题是:_C#_Asp.net_Lucene_Sitecore_Lucene.net - Fatal编程技术网

C# 从Sitecore Lucene搜索结果中排除上下文项 问题是:

C# 从Sitecore Lucene搜索结果中排除上下文项 问题是:,c#,asp.net,lucene,sitecore,lucene.net,C#,Asp.net,Lucene,Sitecore,Lucene.net,我试图构建一个相关项功能,但我也在结果中选择上下文项 实施: 我试图使用FieldSearchParam从结果中排除项目列表: var fieldParam = new FieldSearchParam() { Condition = QueryOccurance.MustNot, FieldName = BuiltinFields.ID, FieldValue = item.ID.ToString().Replace("{&qu

我试图构建一个相关项功能,但我也在结果中选择上下文项

实施: 我试图使用FieldSearchParam从结果中排除项目列表:

var fieldParam = new FieldSearchParam()
    {
        Condition = QueryOccurance.MustNot,
        FieldName = BuiltinFields.ID,
        FieldValue = item.ID.ToString().Replace("{", "").Replace("}", "").Replace("-", "").ToLower() + "~",
    };
相信我,我知道FieldValue有多糟糕,但是索引没有标准的Sitecore项目GUID格式

问题是: 首先,是否有更好的方法格式化lucene比较的项目guid?这个实现甚至不会覆盖不同的语言


其次,为什么我的项目没有被排除在外?

有一件事你可以用简短的id来代替那些替换语句:item.id.tosortid().ToString()。你也可以更新爬虫来索引项目id,这就是我通常做的。在反复研究了一段时间后,我决定按照你说的那样索引项目id。我试图避免在索引中隐藏更多的垃圾——这是因为这个项目相当依赖于性能——但除非有人有更好的方法来做,否则这将不得不起作用。我和一位同事试图编写我们自己的SearchParam实现,其ProcessQuery方法生成的输出在Luke中正常工作,但我们仍然无法让它工作。