我们的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,4(如果当前页面是语言2)。
到目前为止,我一直在使用非常基本的搜索,用户只需在文本框中输入值“查询”:
IEnumerable<IPublishedContent> c = Umbraco.TypedSearch(query);
这是理想的,除了它扫描所有文件(即1,2,3和4的根和子),并且不排除1或2子女的文件,具体取决于语言。
相信我需要为语言1和语言2设置检查搜索提供程序和检查索引,但我不确定如何设置多个IndexParentId值,也不知道如何扫描所有字段所有文件。
有人能指出我正确的方向吗?
我意识到扫描所有字段可能并不总是一个好主意,但是我们目前在我们的doc类型中包含“内容”的部分有许多不同的字段名,所以现在这对我来说是最好的方法。
(我最初在一周前在Umbraco论坛上发布了这个,但没有回复,因此我的帖子就在这里)
答案 0 :(得分:0)
您可以按路径过滤查询。
Say语言1根节点ID为100,语言2根节点ID为200.然后,如果您使用的是语言1,则查询路径不包含200的页面,反之亦然。
像这样:http://www.attackmonkey.co.uk/blog/2011/12/limiting-an-examine-search-to-the-current-site