我们将 Liferay 用作经典的 CMS,这意味着我们使用 Web 内容文章来编写页面。Liferay 的内部搜索存在问题,我还没有找到正确的答案:
因为网络内容文章几乎只是页面的构建块,我们不希望搜索将它们显示为不同的项目。用户应该只获得包含其搜索关键字的页面列表,包括放置在此页面上的所有文章。
目前,我们可以看到两种不同的方法,它们都有一些我们还无法解决的问题:
理念一
我们修改期刊索引器并尝试获取文章所在页面的所有 URL(如何?)。然后我们将它们添加到要索引的文档中。在搜索结果中,我们可以访问 URL 并收集它们。最后,我们确保每个 URL 只显示一次。
想法 2
在某些时候,Liferay 会在将整个页面发送到浏览器之前渲染整个页面。如果我们能以某种方式在那里放置一个索引器,我们就可以索引整个页面。然后我们可以将搜索限制为特殊的“页面文档”。获取完全呈现的页面将是这里的主要问题,因为要么我们必须运行爬虫来频繁触发此索引,要么我们需要找到一种方法来从索引器或类似的东西中触发页面呈现。
我已经解决这个问题很长一段时间了,但仍然找不到一个足够好的想法来花时间尝试它。如果你们中的任何人对这两个想法或完全不同的方法有一些意见,我将非常感激。