【问题标题】:How to parse & index different portions of an HTML page using Tika & Lucene?如何使用 Tika 和 Lucene 解析和索引 HTML 页面的不同部分?
【发布时间】:2011-06-06 12:36:57
【问题描述】:

我一直在尝试使用 Lucene 和 Tika 解析和索引 HTML 页面的不同部分。例如。我想分别索引 HTML 页面的 Title、H1、H2、A 标签中的文本,并为每个标签提供不同的提升。我正在使用 Tika 进行 HTML 解析并创建一个包含需要索引的适当字段的 Document 对象。但是,我在 Tika 中找不到任何可以帮助我立即索引我想要的标签的东西。

我的代码看起来像这样:

 InputStream is = new FileInputStream(f); 
 Parser parser = new AutoDetectParser(); 
 ContentHandler handler = new BodyContentHandler(-1);
 ParseContext context = new ParseContext(); 
  context.set(HtmlMapper.class, DefaultHtmlMapper.INSTANCE); 

 try {
  parser.parse(is, handler, metadata, context);
 } finally {
  is.close();
 }

 Document doc = new Document();
 doc.add(new Field("contents", handler.toString(),
   Field.Store.NO, Field.Index.ANALYZED));

 for (String name : metadata.names()) {
  String value = metadata.get(name);

  if (textualMetadataFields.contains(name)) {
   doc.add(new Field("contents", value,
     Field.Store.NO, Field.Index.ANALYZED));
  }

  doc.add(new Field(name, value, Field.Store.YES, Field.Index.YES));
 }

进入 Tika 的 HTML 解析代码,我发现是 org.apache.tika.parser.html.HtmlHandler 类填充了元数据对象。

我是否需要编写像 HtmlHandler 这样的自定义 HTML 处理程序? Tika 中是否有一些类可以解析出指定的不同 HTML 标记中的文本? 有人可以为您提出的解决方案提供代码示例吗?

【问题讨论】:

    标签: search full-text-search html-parsing lucene


    【解决方案1】:

    嗯。您是否出于任何特定原因使用该项目的搜索引擎?我用一个来寻找答案,想象一下 ;-)

    A good and relevant tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-16
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2016-12-20
      • 2014-07-05
      相关资源
      最近更新 更多