当前位置: 首页 > 面试题库 >

坚果爬网文档的Elasticsearch映射中面临的问题

严朝明
2023-03-14
问题内容

在使用nutch和elasticsearch进行爬网时面临一些严重的问题。

我们的应用程序中有两个数据存储引擎。

  1. 的MySQL

  2. elasticsearch

可以说我在mysql
db的urls表中存储了10个url。现在,我想在运行时从表中获取这些url,并将其写入seed.txt以进行爬网。我已经将所有这些网址一次性写入了txt。现在,我开始抓取,然后将这些文档在elasticsearch内的索引中索引(可以说是URL索引)。但是我想在Elasticsearch索引中维护一个引用,以便我可以获取特定URL的已爬网详细信息以进行分析,因为Elasticsearch索引仅包含已爬网数据。对于前。

我在mysql中的表结构是:

表格网址:

网址

1 www.google.com

我想要的Elasticsearch索引映射是:

索引网址:

{_id:“ www.google.com”,键入:“ doc”,内容:“ Hello world” url_id:1,。。。}

此处url_id是urls表中已爬网url的id列的字段值。

我可以为每个URL创建单独的索引,但是该解决方案并不理想,因为最终我将拥有多个索引。那么如何在爬网之后实现这一目标。我是否需要修改elasticsearch索引器。我正在使用nutch
1.12和elastichsearch 1.7.1。任何帮助将不胜感激。


问题答案:

您应该在种子列表中将url_id作为附加元数据传递,并使用urlmeta和index-
metadata插件,以便将键/值传递到出站(如有必要)或至少可用于索引。

有关如何索引元标记的说明,请参见Nutch WIKI。



 类似资料:
  • 我有一个文档,我希望将其存储在ElasticSearch中,并能够对其运行查询,但我认为文档结构可能格式不正确,因此我无法进行有效的查询。 该文档试图是通用的,因此具有一组重复结构。 例如: 注意:我简化了这个例子,就像在真实的文档中一样,重复结构有大约7个字段,其中3个字段将明确标识“类型”。 从上面的示例中,我看不到如何编写映射,因为“值”可以是: 整数 IP地址 只需要用空格标记的字段 约会

  • 随着ElasticSearch计划删除映射类型,这是否也意味着不再使用嵌套文档和嵌套查询?ElasticSearch将如何支持无类型上下文中的嵌套对象查询? 我正在考虑的功能是能够只返回匹配搜索条件的嵌套数组中的命中。 编辑1:ElasticSearch版本6中的映射查询示例 ElasticSearch 6映射 ElasticSearch 6查询

  • 我正在尝试索引stackoverflow数据。首先,我使用指定的映射和设置创建一个索引。 然后我尝试批量索引我的文档: 给定错误:('500个文档未能索引.', [{'索引':{'_index':'sof-问题-答案2','_type':'Stackoverflow','_id':1','status':400,'错误':{'type':'illegal_argument_exception','

  • 问题内容: 我面临着Elasticsearch的一个怪异问题。我的映射指定某个字段的类型为。现在我不小心试图索引一些具有该字段类型而不是的文档。我没有从Elasticsearch得到任何错误,但从未对文档建立索引。当我解决此问题时,文件被索引就好了。 例: 我的映射: 当我发送此文档时,它会静默失败: 当我发送此消息时,它按预期工作: 有没有办法检测这种错误? 问题答案: 如果将ignore_ma

  • 我目前正在使用Laravel v7。2.安装babenkoivan/scout elasticsearch驱动程序(4.2)并使用AWS elasticsearch 7.1调幅。在我的应用程序中映射了几个表,这些表工作正常,但嵌套映射存在问题,以前该映射工作正常,现在已损坏。 我将数据保存到一个表中,并将该表数据复制到AWS Elasticsearch中。我使用MySQL 5.6,所以我使用TEX

  • 问题内容: 有一个对话列表,每个对话都有一个消息列表。每个消息都有一个不同的字段和一个字段。我们需要考虑的是,在对话的第一条消息中使用了动作,在几条消息中使用了动作之后,过了一会儿,依此类推(有一个聊天机器人意图列表)。 将对话的消息动作分组将类似于: 问题: 我需要使用ElasticSearch创建一个报告,该报告将返回每次会话的;接下来,我需要对类似的东西进行分组并添加一个计数;最终将导致as