0

我有一个数据库,其中包含一些数据,例如 url、ip、国家、州等。

我需要抓取 url 并将值与 url 映射。

说如果我有一个网址http://www.google.com和国家美国,我需要用抓取的数据映射国家。

我尝试了数据库爬虫,它很慢。因为我有 500 万个 url。

是否有任何其他选项可以通过开放式搜索服务器将数据库值与爬网数据进行映射。??

提前致谢。

4

1 回答 1

1

您使用的是 OpenSearchServer 1.3.1 吗?

如果是这样,可以使用单独的索引来存储位置参数(由数据库提供)。

在搜索请求中,与全文搜索相比,您将使用“连接查询”从元数据索引中获取数据。

因此,您将获得两个索引: 1. 具有常用列的索引:标题、内容、URL、主机名... 2. 具有元数据的索引:国家、州、ip、URL 或/和主机名(用作外键)。

在元数据索引的 fieldmap 中,不要勾选 URL 复选框,以避免页面的网络爬取。我们只需要它与爬网索引进行连接。

使用 MySQL 索引 500 万条小数据应该很快(大约 10 分钟)。您是否适当地设置了缓冲区大小?对于短数据,大缓冲区将加快索引速度。

它可能变慢的另一个原因是 OpenSearchServer 允许的内存量。查看运行时/系统面板以检查是否有足够的可用内存。通常,一个 500 万个索引需要 2 到 4 GB 的内存。

您也可以考虑使用爬网缓存。它使您可以更改索引配置并重新开始抓取会话,而无需真正抓取 URL。如果页面在爬网缓存中可用,则将使用缓存。

于 2012-12-23T08:51:37.097 回答