如何从 HTML 文件中提取元标签并在 SOLR 和 TIKA 中对其进行索引

2023-12-08

我正在尝试提取 HTML 文件的元标签,并通过 tika 集成将它们索引到 solr 中。我无法使用 Tika 提取这些元标记,也无法在 solr 中显示。

我的 HTML 文件看起来像这样。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="product_id" content="11"/>
<meta name="assetid" content="10001"/>
<meta name="title" content="title of the article"/>
<meta name="type" content="0xyzb"/>
<meta name="category" content="article category"/>
<meta name="first" content="details of the article"/>

<h4>title of the article</h4>
<p class="link"><a href="#link">How cite the Article</a></p>
<p class="list">
  <span class="listterm">Length: </span>13 to 15 feet<br>
  <span class="listterm">Height to Top of Head: </span>up to 18 feet<br>
  <span class="listterm">Weight: </span>1,200 to 4,300 pounds<br>
  <span class="listterm">Diet: </span>leaves and branches of trees<br>
  <span class="listterm">Number of Young: </span>1<br>
  <span class="listterm">Home: </span>Sahara<br>
</p>
</p>

我的 data-config.xml 文件如下所示

<dataConfig>
<dataSource name="bin" type="BinFileDataSource" />
    <document>   
    <entity name="f" dataSource="null" rootEntity="false"
        processor="FileListEntityProcessor"
        baseDir="/path/to/html/files/" 
        fileName=".*html|xml" onError="skip"
        recursive="false">

        <field column="fileAbsolutePath" name="path" />
        <field column="fileSize" name="size"/>
        <field column="file" name="filename"/>

        <entity name="tika-test" dataSource="bin" processor="TikaEntityProcessor" 
        url="${f.fileAbsolutePath}" format="text" onError="skip">

        <field column="product_id" name="product_id" meta="true"/>
        <field column="assetid" name="assetid" meta="true"/>
        <field column="title" name="title" meta="true"/>
        <field column="type" name="type" meta="true"/>
        <field column="first" name="first" meta="true"/>
        <field column="category" name="category" meta="true"/>      
        </entity>
    </entity>
</document>
</dataConfig>

在我的 schema.xml 文件中,我添加了以下字段。

<field name="product_id" type="string" indexed="true" stored="true"/>
<field name="assetid" type="string" indexed="true" stored="true" />
<field name="title" type="string" indexed="true" stored="true"/>
<field name="type" type="string" indexed="true" stored="true"/>
<field name="category" type="string" indexed="true" stored="true"/>
<field name="first" type="text_general" indexed="true" stored="true"/>

在我的 solrconfing.xml 文件中,我添加了以下代码。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler" />
<lst name="defaults">
  <str name="config">/path/to/data-config.xml</str>
</lst>

谁能知道如何从 HTML 文件中提取这些元标记并在 solr 和 Tika 中对它们进行索引?我们将不胜感激您的帮助。


我不认为 meta="true" 意味着你认为的意思。它通常指的是那些about文件而不是内容。因此,内容类型等。可能 http-equiv 也会被映射。

除此之外,您需要提取实际内容。您可以通过使用 format="xml" 然后使用 XPathEntityProcessor 放置内部实体并映射路径来完成此操作。除非,即使如此,你还是受到限制,因为卡住了,因为 AFAIK,DIH 使用 DefaultHtmlMapper,它对它允许的内容有极大的限制,并跳过大多数“class”和“id”属性,甚至像“div”之类的东西。您可以阅读允许的元素和属性列表自己在源代码中。

坦率地说,更简单的方法是拥有一个 Solr 客户端并自己管理 Tika。然后你可以将其设置为使用 Identity Html Mapper,它不会与 HTML 混淆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 HTML 文件中提取元标签并在 SOLR 和 TIKA 中对其进行索引 的相关文章

  • SolrNET - 从 Nuget 拉取时无法加载文件或程序集“HttpWebAdapters”

    我正在使用 Nuget 在 ASP NET MVC 项目中获取最新版本的 SolrNET 和 StructureMap SolrNetIntegration x IncludeRegistry new SolrNetRegistry Sol
  • Solr 自动提交和自动优化?

    我很快就会将我的网站上传到 VPS 这是一个分类网站 使用Solr与 MySql 集成 每当放置或删除新的分类时 Solr 就会更新 我需要一种方法来使commit and optimize 自动化 例如每 3 小时左右一次 我怎样才能做到
  • solr 模式中的日期时间字段

    我正在使用 Solr 在我的数据库上进行搜索 并且我需要从 mysql 数据库获取一个具有 日期时间 数据类型的字段 因此我设置了选择查询以在 dataconfig xml 中获取此字段 并为此添加了字段名称schema xml 中的字段如
  • Apache Solr 6.6 替换文档而不是更新

    我已配置 solr 6 6 1 进行测试设置 在索引了一些文档后 我必须更新一些字段 我正在使用 python 客户端solr https pythonhosted org solrpy reference html 要更新 以下是我的代码
  • Solr 复制和 Solr 云有什么区别?

    我支持 Rails 项目 其中包含 Rails 应用程序和 Solr 的附加实例 我的环境 rails 3 2 1 ruby 2 1 2 sunspot 2 1 0 Solr 4 1 6 Problem 云提供商不稳定 我不能使用其他云提供
  • Solr:如何动态提升有限数量的文档? QueryElevationComponent 是否需要修改?

    我的要求是提升数量有限针对用户请求的 例如五个 文档 我有的是一个文档字段它存储类似于表示增强值的数值电梯排名值 因此 用户查询将返回 5 个具有最高电梯排名值的文档 其余文档按常规顺序填充页面 怎么做 The QueryElevation
  • SOLR 权限/根据访问权限过滤结果

    例如 我有文档 A B C 用户 1 必须只能看到文档 A B 用户 2 必须只能看到文档 C 是否可以在 SOLR 中执行此操作而不通过元数据进行过滤 如果我使用元数据过滤器 每次访问权限发生变化时 我都必须重新索引 2012 年 2 月
  • 如何使用 SolrJ 获取突出显示的片段?

    我正在将我的应用程序从 Lucene 迁移到 Solr Solr 可以更好地处理突出显示 但是如果我搜索关键字 city 我会期望得到如下响应 id fdc3833a 0e4f 4314 ba8c title Paris is a beau
  • 如何使用 Solr Provider 控制 Sitecore ContentSearch 中嵌套查询的优先级?

    版本详情 我正在使用 Sitecore 7 5 build 141003 使用 Solr v4 7 作为搜索引擎 索引服务器 我还使用标准 Sitecore Solr 提供程序 没有自定义索引器 目标目标 我使用 Sitecore Cont
  • 使用 Tika jars 检查 Mimetype

    我正在开发标准的单独 Java 批处理过程 我正在尝试使用 Tika Jars 确定文件附件 mimetype 我正在使用 Tika 1 4 Jar 文件 我的代码看起来像 Parser parser new AutoDetectParse
  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • 如何使用 pysolr 对 solr 进行原子更新?

    我找不到关于如何使用 pysolr 更新 solr 的合适文档 截至 2014 年 11 月原子更新 https github com toastdriven pysolr commit c49be48d459448532b5ad0f505
  • Solr 中的多值字段排序

    我有一个 Solr 索引 将每个产品的价格存储在多值字段中 我需要按价格对结果集进行排序 其中价格从低到高 从高到低 我尝试对价格进行排序 它显示错误您无法对 multivalued True 字段进行排序 下面是我的 solr XML
  • 复杂的 SOLR 查询,包括 NOT 和 OR

    我对 SOLR 搜索有一些相当复杂的要求 我需要针对标记内容的数据库执行这些搜索 我需要首先过滤数据库以获取与我的过滤器标签匹配的结果 任何具有黑名单中的标签的结果都应被删除 除非它们也包含白名单中的标签 假设我想检索所有标记为 森林 或
  • 在solr中获取pdf搜索结果的页码

    我正在构建一个 Web 应用程序 用户可以在其中搜索 pdf 文档并使用 pdf js 查看它们 我想显示搜索结果 其中包含找到搜索词的段落的简短片段以及用于在右侧页面打开文档的链接 所以我需要的是每个搜索结果的页码和简短的文本片段 我正在
  • Solr MoreLikeThis 不适用于多个分片?

    我在 SolrCloud 中有 5 个节点集群 每个节点有 2 个分片 Solr版本 6 3 0 现在 当我运行 mlt 查询时 它仅返回每个节点的结果 并且不会将它们分布在所有分片 节点上 即 没有给出任何结果 给出结果 我什至尝试将其指
  • Solr 您的意思是(拼写检查组件)

    我在我的应用程序中使用 solr 并集成了拼写检查组件 但我遇到了一些问题 第一的 当我输入一个用空格分隔的术语时 他们会给我每个术语的更正 Eg 水 gt 什么术语 但事实是watters 第二 当我输入一些带有错误术语的短语时 尽管其他
  • Solr 动态价格范围和组

    跟进问题 如何获取 solr 结果中的方面范围 https stackoverflow com questions 33956 how to get facet ranges in solr results SolR 查询 价格范围 htt
  • 如何使用 lucene 查询找到空的 Solr 文档字段

    我有一些这样的文件
  • Solr 索引时间提升 VS 查询时间提升?

    问题 1 我们可以只进行查询时间提升 使用 dismax 而不在索引时间提及提升值吗 问题 2 与查询时间提升相比 索引时间提升有何优点 缺点 反之亦然 查询时间和索引时间提升 在索引时 您可以选择提升特定文档 整个文档或仅一个字段 它作为

随机推荐