我只希望某些节点被索引。 “搜索配置”模块声称具有此功能,但它不起作用。那么,我该如何编辑节点模块来仅索引某些节点,或者更好地实现一个可以为我做到这一点的模块?如何限制drupal搜索索引所有内容类型?
回答
这是a long standing feature request,但看起来它已经被推到至少Drupal的8:/
你可以在上面链接的功能要求讨论一些方法建议,但所使用的“标准”的做法搜索配置模块是described here。它不会阻止节点被索引,但会操纵搜索查询以忽略某些条目(例如节点类型),以便它们不会显示在搜索结果页面上。
由于目前没有明显的更好的解决方案(afaik),我同意ceejayoz的评论,您应该首先检查为什么搜索配置模块不适合您,然后开始自定义编码您自己的解决方案。
如果你不得不求助于编辑节点模块本身,node_update_index()
将是开始的地方。
下面是确定需要进行索引,从node_update_index()什么查询:
SELECT n.nid FROM {node} n
LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid
WHERE d.sid IS NULL OR d.reindex <> 0
ORDER BY d.reindex ASC, n.nid ASC
你不能阻止索引脚本运行。 但是,您可以通过向{search_dataset}中插入虚拟条目来欺骗该查询,从而将思考内容编入索引。
例如,如果你使用MySQL,做这个的cron:
INSERT INTO {search_dataset}
(sid, type, data, reindex)
SELECT nid, 'node', '', 0 FROM {node} WHERE node.type IN (RESTRICTED_TYPES)
ON DUPLICATE KEY UPDATE reindex = 0, data = ''
替换“RESTRICTED_TYPES”与您的节点类型的列表,你想从限制每个实体做类似查询搜索。
您可能还想清理您的search_index表,它可能变得非常庞大,如下所示:“从search_index中删除,其中sid为 (SELECT nid FROM节点WHERE node.type IN(RESTRICTED_TYPES)” – aaronbauman 2013-02-18 22:05:10
还有一件事,您可以如果你有一个非常大的数据库,需要手动清理你的search_total表:“DELETE FROM search_total WHERE word NOT IN(SELECT DISTINCT word FROM search_index)”否则search.module内存不足会尝试加载所有缺少的项目单个查询。 – aaronbauman 2013-02-19 15:12:49
- 1. 的Drupal 6:搜索索引和自定义内容类型
- 2. Drupal搜索不索引所有节点?
- 3. Drupal,搜索模块:仅限于1种内容类型
- 4. 如何重新索引某种类型的所有内容?
- 5. TYPO3索引搜索引擎 - 并非所有的页面内容被索引
- 6. Drupal 7内容类型限制
- 7. 搜索Drupal内容类型中的2个字段
- 8. 内容复制和搜索引擎
- 9. 搜索多种内容类型
- 10. 索引/搜索PDF内容使用Solr
- 11. 天青搜索索引html内容
- 12. Drupal结合用户+内容搜索
- 13. 如何限制搜索和
- 14. str_replace()有搜索限制吗?
- 15. PHP-Elasticsearch搜索所有索引
- 16. 如何索引CMS内容以进行搜索
- 17. Google中的内容重复。搜索引擎优化Drupal
- 18. joomla有搜索内容吗?
- 19. Drupal 7索引pdf文件搜索
- 20. Drupal的:如何创建一个显示所有内容类型
- 21. 如何获取Drupal 6中所有内容类型的列表?
- 22. 如何检索NSDictionary的所有内容?
- 23. 如何搜索内部类?
- 24. 将自定义模块创建的内容添加到drupal搜索索引
- 25. 如何(递归)搜索Windows 7中的所有文件内容?
- 26. 限制搜索(python)
- 27. 如何在kademi中按索引类型过滤搜索结果?
- 28. Drupal 8搜索API - 如何获取内容的网址
- 29. 如何添加搜索框到drupal页面内容(404页)
- 30. 搜索索引复制
定义“不起作用”。您是否联系了搜索配置维护人员以获得支持? – ceejayoz 2009-11-01 14:55:50
By不起作用,我的意思是它阻止它们出现在搜索结果中,但它不会停止这些节点的索引。这是我需要的。 – coderama 2009-11-01 17:20:07