elasticsearch 某些网站的元标记没有索引,elasticsearch,web-crawler,nutch,elasticsearch,Web Crawler,Nutch" /> elasticsearch 某些网站的元标记没有索引,elasticsearch,web-crawler,nutch,elasticsearch,Web Crawler,Nutch" />

elasticsearch 某些网站的元标记没有索引

elasticsearch 某些网站的元标记没有索引,elasticsearch,web-crawler,nutch,elasticsearch,Web Crawler,Nutch,我正在使用Nutch抓取一些网站,并通过自定义插件(myplugin)将数据索引到弹性搜索 我需要的信息存储在元标签从爬网网站。为了实现这一点,我在nutch-site.xml中添加了如下属性: <property> <name>plugin.includes</name> <value>protocol-httpclient|myplugin|urlfilter-regex|parse-(tika|html|js|css|meta

我正在使用Nutch抓取一些网站,并通过自定义插件(myplugin)将数据索引到弹性搜索

我需要的信息存储在元标签从爬网网站。为了实现这一点,我在nutch-site.xml中添加了如下属性:

<property>
    <name>plugin.includes</name>
    <value>protocol-httpclient|myplugin|urlfilter-regex|parse-(tika|html|js|css|metatags)|index-(basic|anchor|metadata)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|indexer-elastic</value>
  </property>

  <property>
        <name>metatags.names</name>
        <value>*</value>
  </property>

  <property>
        <name>index.parse.md</name>
        <value>keywords,description</value>
  </property>

  <property>
        <name>index.content.md</name>
        <value>keywords,description</value>
  </property>

plugin.includes
协议httpclient | myplugin | urlfilter正则表达式|解析| tika | html | js | css | metatags |索引|基本|锚|元数据|查询|基本|站点| url |响应| json | xml |摘要基本|评分| urlnormalizer
metatags.name
*
index.parse.md
关键词,描述
index.content.md
关键词,描述
它适用于某些站点,但不适用于像这样的站点


任何帮助都将不胜感激。

可能是因为名称是大写的

<meta name="Description" content="...">
<meta name="Keywords" content="...">

也许可以尝试配置中的case变量

顺便说一句,您可以使用“/nutch indexchecker…”测试给定URL上的提取和字段生成

编辑:小写我们正在寻找的键,但解析元数据中的键名称可能在原始大小写中,即使用大写


在这个问题解决之前,,您可以将一些自定义代码添加到自己的插件中,以使键小写,或者修改MetadataIndexer,使其保留大小写,或者更改逻辑,使其能够处理案例中的变量。

根据您提供的答案和提示,您可以将解析器过滤器插件更改为类似以下内容将其中的所有元名称小写,这将暂时解决此问题

        Metadata newMeta=new Metadata();
        Metadata oldMeta=parse.getData().getParseMeta();
        String metaValue;
        for(String metaName:oldMeta.names()){
          metaValue=oldMeta.get(metaName);
          newMeta.add(metaName.toLowerCase(),metaValue);
        }

        parseData = new ParseData(status, title, parse.getData().getOutlinks(), 
                                      parse.getData().getContentMeta(), newMeta);
        parseResult.put(content.getUrl(), new ParseText(text), parseData);
        return parseResult;

HTH

已经尝试过这个,但没有成功。此配置可以完美地使用,但“”使用小写的“description”和“keywords”分两步执行-首先检查它们是否使用parsechecker提取,然后使用indexchecker检查字段是否正确生成。在使用parsechecker检查时列出了Metatags,但没有索引。(使用弹性搜索)@julienneoche:这是因为index.parse.md和index.content.md中的属性名是小写的吗?