【发布时间】:2012-02-20 12:35:43
【问题描述】:
我还没有深入了解 SDL Tridion 在其内部搜索引擎 (SOLR) 中存储数据的内容和方式的详细信息,但我需要构建一个 GUI 扩展,该扩展需要跨出版物对组件/元数据字段执行搜索。
我看不出有什么理由不去研究 SOLR,但在我投入时间之前,有谁知道为什么这是一个坏主意?
提前致谢!
【问题讨论】:
标签: tridion
我还没有深入了解 SDL Tridion 在其内部搜索引擎 (SOLR) 中存储数据的内容和方式的详细信息,但我需要构建一个 GUI 扩展,该扩展需要跨出版物对组件/元数据字段执行搜索。
我看不出有什么理由不去研究 SOLR,但在我投入时间之前,有谁知道为什么这是一个坏主意?
提前致谢!
【问题讨论】:
标签: tridion
一般来说,绕过 API 直接查询 SOLR 是个坏主意。 从你的问题来看,我认为没有理由这样做。
您是否需要索引比 Tridion 已索引的数据更多的数据? 如果没有,您肯定可以使用 API 进行搜索吗?
如果您这样做,您可以考虑为附加数据实施自定义搜索索引处理程序。尽管目前没有很好的文档记录,但创建起来似乎相当简单(实现 ISearchIndexingHandler 并更新您的 CM 和 SOLR 配置)。好处是您的数据也可以使用标准的 Tridion 搜索来搜索。
【讨论】:
这真的取决于您的搜索要求。如果只是简单的搜索 - 那么它可能没问题,但如果您想进行一些 Tridion 特定的搜索,那么这将非常困难,因为 SDL Tridion 会对 SOLR 结果进行大量后处理。为什么不能只使用 CoreService 并拥有一个方便的支持搜索界面?
【讨论】:
正如 Peter 所说,与 Tridion 附带的 SOLR 进行交互确实是个坏主意。 Tridion 有一个抽象层来隐藏 SOLR 查询的复杂性。例如 tridion 隐藏搜索关键字的大小写敏感性。
我强烈推荐使用 tridion search api 来构建你的界面。 Tridion search api 也支持直接执行 solr 查询。但它不推荐。
为了索引附加数据,你可以实现 ISearchIndexingHandler。 solr 配置文件(添加新字段)有一些复杂性。
【讨论】: