You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TYPO3的Solr索引队列中为news记录配置多个详情页

TYPO3 Solr 为 newsrecords 配置多详情页的方案

可以通过两种常见方式实现,以下是具体配置步骤:

方法1:基于storagePid配置(推荐,匹配你当前不同文件夹存储的场景)

你可以在站点的Solr配置(TypoScript的plugin.tx_solr.index.queue配置段)中为newsrecords定义多个独立的队列配置项,分别绑定不同的storagePid和对应的详情页PID:

  • 首先复制原生newsrecords的索引配置,分别命名为news_news和news_event两个独立队列
  • 分别为两个队列配置storagePid参数,对应你的新闻存储文件夹PID、活动存储文件夹PID
  • 分别配置additionalWhereClause过滤对应存储PID下的记录
  • 分别配置url.pageId为对应详情页的PID

示例配置代码:

plugin.tx_solr {
    index {
        queue {
            # 新闻类newsrecords配置
            news_news = tx_news_domain_model_news
            news_news {
                table = tx_news_domain_model_news
                # 新闻存储文件夹PID,替换为你实际的PID
                storagePid = 123
                additionalWhereClause = pid = 123
                fields {
                    # 绑定新闻详情页PID,替换为你实际的详情页PID
                    url = TEXT
                    url {
                        typolink.parameter = 456
                        typolink.additionalParams = &tx_news_pi1[news]={field:uid}
                        typolink.additionalParams.insertData = 1
                        typolink.returnLast = url
                        typolink.useCacheHash = 1
                    }
                }
            }
            
            # 活动类newsrecords配置
            news_event = tx_news_domain_model_news
            news_event {
                table = tx_news_domain_model_news
                # 活动存储文件夹PID,替换为你实际的PID
                storagePid = 789
                additionalWhereClause = pid = 789
                fields {
                    # 绑定活动详情页PID,替换为你实际的详情页PID
                    url = TEXT
                    url {
                        typolink.parameter = 987
                        typolink.additionalParams = &tx_news_pi1[news]={field:uid}
                        typolink.additionalParams.insertData = 1
                        typolink.returnLast = url
                        typolink.useCacheHash = 1
                    }
                }
            }
        }
    }
}

配置完成后清空Solr索引、重新运行索引队列即可生效。

方法2:基于分类配置

如果你的新闻和活动是通过分类区分、存在同一存储文件夹下,可以通过additionalWhereClause关联分类表过滤,再绑定对应详情页PID:

  • 先确认新闻分类的UID、活动分类的UID
  • 分别写两个队列配置,用additionalWhereClause关联sys_category_record_mm表过滤对应分类的记录
  • 分别绑定不同的详情页PID即可

示例过滤条件写法参考:
additionalWhereClause = EXISTS (SELECT 1 FROM sys_category_record_mm mm WHERE mm.uid_foreign = tx_news_domain_model_news.uid AND mm.uid_local = 10 AND mm.tablenames = 'tx_news_domain_model_news' AND mm.fieldname = 'categories')
其中uid_local = 10替换为你对应分类的UID即可。


内容的提问来源于stack exchange,提问作者Jacco van der Post

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:27:03