Search 使用动态内容搜索单个页面

Search 使用动态内容搜索单个页面,search,seo,concrete5,Search,Seo,Concrete5,我有一个小问题,我一直在努力解决的客户,我一直在与工作。我们有4组单页,它们使用PHP根据提供的get字符串从数据库加载内容。生成的这些页面针对SEO进行了很好的优化,并且具有图像和内容的alt标记,我们需要能够使用搜索功能进行搜索 现在我假设(每个人都知道假设得到了什么)默认情况下,这些页面可以通过concrete 5内置搜索功能进行搜索。但它不起作用。如果我搜索一个我知道肯定在其中一个页面上的单词,甚至多次都找不到结果 我怎样才能让你搜索这些页面。如果默认情况下或插件无法修复此问题,那么请有

我有一个小问题,我一直在努力解决的客户,我一直在与工作。我们有4组单页,它们使用PHP根据提供的get字符串从数据库加载内容。生成的这些页面针对SEO进行了很好的优化,并且具有图像和内容的alt标记,我们需要能够使用搜索功能进行搜索

现在我假设(每个人都知道假设得到了什么)默认情况下,这些页面可以通过concrete 5内置搜索功能进行搜索。但它不起作用。如果我搜索一个我知道肯定在其中一个页面上的单词,甚至多次都找不到结果

我怎样才能让你搜索这些页面。如果默认情况下或插件无法修复此问题,那么请有人提供一些关于如何修复此问题的建议。这是一项重要功能,必须完成

编辑:见下面我的评论。我仍然需要一些帮助或指导,因为CSE是一个很大的选择。
EDIT2:我可以安装一个爬虫和一个自定义搜索引擎来解决我的问题。我在想蜘蛛。任何其他建议或其他选择都将不胜感激

我还没有对此进行测试,但也许您可以在单页控制器中放置一个函数getSearchableContent(),就像您对块所做的那样。这将返回要搜索的字符串。看起来像这样:

function getSearchableContent() {
    // ... compose searchstring depending on the queried content.
    return $searchstring;
}

但我不知道这是否适用于动态内容。如果没有,我会研究C5的搜索索引核心类,并尝试为您的项目扩展它们。

不幸的是,C5没有提供这样做的方法——进入搜索索引的唯一方法是使用块。即使您创建了一个虚假的块只是为了将内容从单页面传递到搜索索引,也无法说某些内容来自一个URL,而其他内容来自另一个URL(这是您需要做的,因为单页面控制器正在处理许多不同的URL)

除了构建自己的内部搜索引擎之外,我不知道有什么方法可以实现您想要做的事情(而且似乎也没有其他人这样做)

编辑:我只是做了一些挖掘,并认为也许您可以手动将记录插入
PageSearchIndex
表中,并在那里指定可搜索的内容和所需的路径——但这不起作用,因为它依赖于一个cID(集合id,也称为页面id)每个条目——因此您只能为顶级单页面路径插入一条记录

我认为这里最简单的解决方案是为您的单个页面创建您自己的搜索基础设施(比如控制器中的某种函数,它将为每个页面返回一系列页面路径和可搜索内容),然后覆盖搜索块并对单个页面执行附加搜索——然后在搜索结果页面上合并结果。或者只需使用google site search搜索您的站点,它实际上会对页面进行爬网,从而找到您的各种单页URL:


祝你好运。

这不起作用--
getSearchableContent()
在单个页面上没有被调用(即使是--虽然不是--也无法指定内容所在的URL)。我确实需要一些帮助。我知道这里没有太多的选择。谷歌inst的CSE正是一个选项,因为他们返回的是我们的竞争对手的广告。关于如何在Concrete 5中进行自己的搜索,有什么想法吗。我主要需要搜索3个数据表以查找其中的单词,但我在concrete5中如何进行这项工作是一个迷宫。向单页控制器添加一个函数,该函数接受搜索关键字并对其运行SQL查询(例如,
SELECT*FROM my_custom_table,my_content_字段,如“%search terms%”
)。使用适当的查询字符串构造适当的URL,以使某人访问包含这些结果的页面。将它们作为数组返回。然后在搜索块中,覆盖view.php文件并从那里调用控制器函数。循环浏览结果并输出到匹配页面的链接。换句话说,您绕过了所有与C5相关的功能。