【发布时间】:2013-08-06 21:21:09
【问题描述】:
我收到了一些请求来查找正在使用“X”类的页面,并尝试使用 Drupal 中包含的搜索功能。
搜索似乎只通过节点的文本,而不是正文字段的 HTML。
可以这样做吗? 有没有具有这种功能的模块? 还是我几乎需要对所有节点的 body 字段执行 db_query 才能找到它?
如果您知道的话,查找 HTML 的模块或内置功能确实可以为我节省一些时间。非常感谢 D6 和 D7 的答案。
谢谢!
【问题讨论】:
我收到了一些请求来查找正在使用“X”类的页面,并尝试使用 Drupal 中包含的搜索功能。
搜索似乎只通过节点的文本,而不是正文字段的 HTML。
可以这样做吗? 有没有具有这种功能的模块? 还是我几乎需要对所有节点的 body 字段执行 db_query 才能找到它?
如果您知道的话,查找 HTML 的模块或内置功能确实可以为我节省一些时间。非常感谢 D6 和 D7 的答案。
谢谢!
【问题讨论】:
您无法使用标准搜索找到您要查找的内容,因为 Drupal 对 indexed 内容执行搜索,这些内容已从大多数 HTML 内容中清除。你可以在这里看到它的实际效果:
https://api.drupal.org/api/drupal/modules%21search%21search.module/function/search_index/6:
// Strip off all ignored tags to speed up processing, but insert space
// before/after them to keep word boundaries.
$text = str_replace(array('<', '>'), array(' <', '> '), $text);
$text = strip_tags($text, '<' . implode('><', array_keys($tags)) . '>');
这适用于 Drupal 6 和 7。
您可以在此处阅读有关索引的更多信息:http://www.acquia.com/blog/drupal-search-how-indexing-works
至于您问题的第二部分 - 我找不到任何搜索 HTML 的自定义模块,所以我认为您最好的选择是编写自己的模块并查询所有节点的主体。
【讨论】: