在Open search server中映射值

时间:2012-12-22 13:17:05

标签: search-engine opensearch

我有一个数据库,其中包含一些数据,如url,ip,country,state等。

我需要抓取网址并使用网址映射值。

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

我尝试过数据库爬虫,速度非常慢。因为我有5百万的网址。

是否还有其他选项可以通过打开的搜索服务器将数据库值与已爬网数据进行映射。??

提前致谢。

1 个答案:

答案 0 :(得分:1)

您使用的是OpenSearchServer 1.3.1吗?

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

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

所以你会得到两个索引: 1.常用列索引:标题,内容,URL,主机名...... 2.带有元数据的索引:国家,州,IP,URL或/和主机名(用作外键)。

在元数据索引的字段映射中,不要选中URL复选框,以避免对网页进行网页抓取。我们只需要它与爬网索引进行连接。

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

它可能很慢的另一个原因是OpenSearchServer允许的内存量。查看Runtime / System面板,检查是否有足够的可用内存。通常,5百万索引需要2到4 GB的内存。

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