使用Lucene.NET进行Sitecore语言搜索

使用Lucene.NET进行Sitecore语言搜索,sitecore,lucene.net,culture,Sitecore,Lucene.net,Culture,我正在使用Alex Shyba的高级数据库爬虫对Sitecore和Lucene.NET查询中的数据进行索引,以进行搜索查询。我让它在大多数情况下工作稳定,但当我尝试进行术语匹配时,例如en-US、zh-CN和de-de,它在_语言领域有问题 它返回“en”区域性的所有结果。但例如,在中弘CN文化中,它返回了大约99%的结果,并从每套中删除了2-3篇文章。en和zh CN是同一项目的不同版本。我可以通过Luke在索引中的两种文化中看到关于该项目的两种信息 我在语言字段上使用TermQuery返回数

我正在使用Alex Shyba的高级数据库爬虫对Sitecore和Lucene.NET查询中的数据进行索引,以进行搜索查询。我让它在大多数情况下工作稳定,但当我尝试进行术语匹配时,例如en-US、zh-CN和de-de,它在_语言领域有问题

它返回“en”区域性的所有结果。但例如,在中弘CN文化中,它返回了大约99%的结果,并从每套中删除了2-3篇文章。en和zh CN是同一项目的不同版本。我可以通过Luke在索引中的两种文化中看到关于该项目的两种信息

我在语言字段上使用TermQuery返回数据。我尝试使用PhraseQuery和WildCardQuery,但每次都得到相同的结果

我试图避开连字符,因为标准Analyzer不喜欢带反斜杠的hypens,但这也不起作用

在这一点上,我没有主意了。如何让查询返回所有匹配的文档


多亏了ADC有自己的查询对象来定义搜索参数。只需使用上的
Language
属性按语言进行搜索。

我不知道ADC有这个类。我已经使用Lucene.NET查询构建了我的逻辑。我的大部分代码现在已经完成了,我不想现在重新编写任何东西。您还有其他建议吗?我建议您查看ADC中的代码,看看它实际上是如何处理语言过滤的。看起来就像是在同一个类中,
ApplyLanguageClause()
方法为该语言的iso代码在
BuiltFields.language
上添加了一个短语查询。