背景:我们的pagetree不支持语言覆盖,也不适用于每个域的单独域。不同的语言由域下的子树表示。
Pagetree:
我们正在使用TYPO3,EXT:solr和Solr。
是否可以在TYPO3中的域内为不同的子树使用不同的Solr核心?
到目前为止,我找到了一种基于TS条件处理不同语言和核心的解决方案:[globalVar = GP:L = 1]。但那不是我们的用例。
此外,我发现了一个6年前的问题,它完全代表了用例,但没有得到肯定答案(https://forum.typo3.org/index.php/t/158570/)。
有人可以给我一个提示吗?这个用例是否可能?
答案 0 :(得分:3)
是的,这可以使用EXT版本7:solr
`
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['sites']['<uid of page "de">']['domains'] = ['your.domain.de'];
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['sites']['<uid of page "en">']['domains'] = ['your.domain.de'];
`
plugin.tx_solr {
solr {
scheme = http
host = <your-solr-dhost>
port = 80
path = <your-solr-core>
}
}
然后你需要调度任务来索引网站......一个用于“de”,一个用于“en”。
在这里工作得非常好: - )
答案 1 :(得分:0)
根据我的经验,这很可能是不可能的。 原因是,EXT:solr工具需要一个常见的TypoScript配置,它同时适用于后端和前端上下文。 这就是为什么他们选择不根据前端请求评估TypoScript配置(这可以使页面树中任何位置的配置不同),而是基于标记为域根的页面。
因此,配置解析器首先查找此类页面,然后在树中的特定级别/点评估TypoScript设置。
我认为你唯一的解决方案是对上述机制做出相当深刻的改变,这是可能的,我自己做了(排除一些根级页面,因为我有很多)。 通过这种方式,您可以指示引擎从您想要的树中的任何固定位置获取TypoScript设置。
如果您有兴趣尝试这个,这将是扩展的类方法:ApacheSolrForTypo3 \ Solr \ ConnectionManager :: getConfiguredSolrConnections()