我们的Umbraco 7站点有以下4个顶级节点。
1 - Home 1 (Language 1)
2 - Home 2 (Language 2)
3 - Discuss (Bilingual, i.e. Language 1 and Language 2)
4 - Buy (Bilingual, i.e. Language 1 and Language 2)
根据用户是在语言1还是语言2页面上,我希望搜索1、3、4(如果当前页面为语言1)或2、3、四(如果当前页为语言2)的所有子级的所有文档的所有字段。
到目前为止,我一直在使用一个非常基本的搜索,用户只需在文本框中输入一个值"query":
IEnumerable<IPublishedContent> c = Umbraco.TypedSearch(query);
这将是理想的,除了它扫描所有文档(即1、2、3和4的根和子文档),并且根据语言不排除1或2的子文档之外。
我认为我需要为语言1和语言2设置一个检查搜索提供程序和一个检查索引,但我不知道如何设置多个IndexParentId值,也不知道如何扫描所有文档中的所有字段。
有人能给我指正确的方向吗?
我意识到,扫描所有字段可能并不总是一个好主意,但我们目前有许多不同的字段名称用于文档类型中包含"内容"的部分,所以现在这是对我来说最好的方法。
(我最初一周前在Umbraco论坛上发布了这篇文章,但没有得到回应,因此我在这里发布了这条文章)
您可以按路径进行查询筛选。
假设语言1根节点ID为100,语言2根节点ID是200。然后,如果您使用的是Language 1,请查询路径不包含200的页面,反之亦然。
类似于以下内容:http://www.attackmonkey.co.uk/blog/2011/12/limiting-an-examine-search-to-the-current-site