我们使用 Stormcrawler 来爬取我们使用 Elasticsearch 作为后端的 Drupal 站点。
我们的 Drupal 站点有一个 sitemap.xml 文件。sitemap.xml 文件包含我们希望 Stormcrawler 抓取的链接列表。我们将站点地图 url 放在我们的 seed.txt 文件中。 这个对吗?请参阅下面的 seed.txt 文件示例。
当我在 Elasticsearch 中检查状态索引时,sitemap.xml 文件中包含的链接都具有 ERROR 状态并且不在内容索引中。当我们搜索内容索引时,不包含该 url 或这些页面上的内容。我有这些链接的状态索引结果示例。
ERROR status ERROR metadata.error%2Ecause maxFetchErrors nextFetchDate Dec 31, 2099 @ 00:00:00.000的状态索引结果示例
我们的状态索引示例 FETCH status FETCH nextFetchDate Aug 20, 2021 @ 12:57:35.000 (我们将获取文件的下一个获取日期设置为每 45 分钟运行一次,而不是我们想要的 24 小时运行一次,以防页面发生更改.)
seed.txt 的例子 我们是这样让它识别我们的站点地图的吗?
http://devsite.com http://devsite.com/sitemap.xml isSitemap=true
我们对配置文件设置进行了更改,以增加抓取时间并更改重新访问获取页面的频率。至少那是我们认为我们正在做的事情。这个对吗?
以下是我们更改的设置:
crawler-conf.yaml:
2 小时后重新访问出现提取错误的页面(值以分钟为单位)我们从 120 更改
fetchInterval.fetch.error: 15
每天重新访问一个页面(以分钟为单位)将其设置为 -1 以从不重新获取页面
这是我们从 1440 更改的设置
fetchInterval.default:45 分钟
ES_IndexInit.sh
curl $ESCREDENTIALS -s -XPUT $ESHOST/status -H '内容类型:
**"refresh_interval": "5s"** Changed to 1s