我想在 Solr 的 DataImporthandler 中使用多个数据源,并在查询父实体中的数据库后在子实体中传递 URL 值

2023-12-23

我想在 Solr 的 DataImporthandler 中使用多个数据源,并在查询父实体中的数据库后在子实体中传递 URL 值。 这是我的 rss-data-config 文件:

<dataConfig>
    <dataSource type="JdbcDataSource" name="ds-db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/HCDACoreDB" 
                            user="root" password="CDA@318"/>
    <dataSource type="URLDataSource" name="ds-url"/>
    <document>
        <entity name="feeds" query="select f.feedurl, f.feedsource, c.categoryname from feeds f, category c where f.feedcategory = c.categoryid">

        <field column="feedurl" name="url" dataSource="ds-db"/>
        <field column="categoryname" name="category" dataSource="ds-db"/>

        <field column="feedsource" name="source" dataSource="ds-db"/>

        <entity name="rss"
                transformer="HTMLStripTransformer" 
                forEach="/RDF/channel | /RDF/item" 
                processor="XPathEntityProcessor" 
                url="${dataimporter.functions.encodeUrl(feeds.feedurl)}" > 

            <field column="source-link" dataSource="ds-url" xpath="/rss/channel/link" commonField="true" />
            <field column="Source-desc" dataSource="ds-url" xpath="/rss/channel/description" commonField="true" />
            <field column="title" dataSource="ds-url" xpath="/rss/channel/item/title" />
            <field column="link" dataSource="ds-url" xpath="/rss/channel/item/link" />
            <field column="description" dataSource="ds-url" xpath="/rss/channel/item/description" stripHTML="true"/>
            <field column="pubDate" dataSource="ds-url" xpath="/rss/channel/item/pubDate" />
            <field column="guid" dataSource="ds-url" xpath="/rss/channel/item/guid" />
            <field column="content" dataSource="ds-url" xpath="/rss/channel/item/content" />
            <field column="author" dataSource="ds-url" xpath="/rss/channel/item/creator" />
        </entity>

    </entity>
</document>

我正在做的是在第一个名为 feeds 的实体中,我正在查询数据库,并希望使用 feedurl 作为子实体名称 rss 的 URL。

运行数据导入时出现的错误是: java.net.MalformedURLException:无协议:nullselect f.feedurl、f.feedsource、c.categoryname from feeds f、类别 c,其中 f .feedcategory = c.categoryid

URL 为 NULL 意味着它没有将 feed url 分配给 URL。

对我做错了什么有什么建议吗?


这是一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="db1" ... />
    <dataSource name="db2"... />
    <document>
        <entity name="outer" dataSource="db1" query=" ... ">
            <field column="id" />
            <entity name="inner" dataSource="db2" query=" select from ... where id = ${outer.id} ">
                <field column="innercolumn" splitBy=":::" />
            </entity>
        </entity>
    </document>

这个想法是有一个嵌套实体的定义,对另一个数据库进行额外的查询。

您可以像这样访问父实体字段${外部.id}

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

我想在 Solr 的 DataImporthandler 中使用多个数据源,并在查询父实体中的数据库后在子实体中传递 URL 值 的相关文章

  • 在 DSE 中何时使用 Cassandra 与 Solr?

    我使用 DSE 进行 Cassandra Solr 集成 以便数据存储在 Cassandra 中并在 Solr 中建立索引 很自然地分别使用 Cassandra 处理 CRUD 操作和使用 Solr 进行全文搜索 并且 DSE 确实可以简化
  • Solr - 从数据库导入日期时间字段 -> 2 小时差异

    我正在 Solr 中导入日期时间列 SQLServer 并且 solr 中的值始终比数据库中早 2 小时 并且具有完整导入和增量导入 我已经用正确的时间配置了jvm 在日志中它显示了正确的时间 我想我必须在 data config xml
  • MySQL 和 Solr 中的分面搜索和类别

    我希望能够创建一个类似于 ebay 或 newegg 的搜索页面 您可以在其中选择类别和根据类别的不同方面 有人能给我指出正确的方向吗 我如何使用 Solr 中的产品存储和搜索此类方面和类别 以及我将使用 MySQL 查看哪种类型的数据库模
  • Solr 高亮显示

    我看到了这个帖子here https stackoverflow com questions 4058913 how to highlighting search results using apache solr with php cod
  • 加速 solr 索引

    Solr 索引花费的时间太长 我使用的mysql有超过3000万条记录 我正在使用两级子查询 请向我建议索引数据的最佳实践 以便我可以加快该过程 查看Solr性能因素 http wiki apache org solr SolrPerfor
  • Solr距离过滤

    我正在尝试使用 Solr 进行距离范围搜索 我知道在5公里范围内进行搜索过滤很容易 q fq geofilt pt 45 15 93 85 sfield store d 5 我所追求的是如果我正在寻找一系列的说法 如何做同样的事情5至10公
  • Solr 和方面搜索

    当您设置模式时 分面搜索是否内置 或者您是否必须做一些事情来设置它 它基本上可以在您设置为可排序的所有字段上开箱即用吗 那么您只需使用 fq 查询语法 它就会返回构面 xml 以及搜索结果 有没有一篇关于这方面的好文章对您第一次有帮助 是的
  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • 另一个日期时间问题

    我目前有一个这种格式的日期 2010 03 03 10 39 18 这是一个TIMESTAMPMySQL 中的字段 我需要为名为 Solr 的搜索引擎提供以下格式的日期 1995 12 31T23 59 59Z 以下是他们网站上有关日期的一
  • MIME 类型/内容类型,用于在 IE 和 Firefox 中使用 Excel 打开 CSV 文件

    我在 Excel 中识别并打开 CSV 输出时遇到问题 在我的 Web 应用程序中 我有一个 java servlet 它将搜索结果返回给用户 搜索结果由 Apache Solr 服务器提供 GUI 前端有一个选项 允许用户请求 CSV 格
  • 复杂的 SOLR 查询,包括 NOT 和 OR

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

    我在 SolrCloud 中有 5 个节点集群 每个节点有 2 个分片 Solr版本 6 3 0 现在 当我运行 mlt 查询时 它仅返回每个节点的结果 并且不会将它们分布在所有分片 节点上 即 没有给出任何结果 给出结果 我什至尝试将其指
  • 使用 sunspot/solr 搜索多个模型

    我已经能够成功地实现基本的全文搜索 但是当我尝试使用范围 with statements 时 任何涉及多对多关系模型的查询似乎都不适合我 我知道相关行位于数据库中 因为我的 sql 语句确实返回了数据 然而 太阳黑子查询不会返回任何结果 我
  • Solr 过滤查询 - 字符串与整数

    假设我正在尝试查询一堆具有类别的文档 并且我想将查询限制为指定的类别 据我所知 这只是使用 fq 参数 过滤器查询 我想知道将参数设置为整 数而不是字符串或数据通常的情况是否会提高性能 我只是会在右侧犯错 但我想我应该仔细检查一下 以防万一
  • cursorMark是无状态的以及它如何解决深度分页

    作为指定here https cwiki apache org confluence display solr Pagination of Results光标标记是无状态的 但我不明白它是如何解决无状态的深度分页问题的 solr 是否按唯一
  • 如何使用 solrnet 在 solr 中使字段搜索不区分大小写

    在 solr 模式中我有如下字段
  • 如何将 Solarium 配置为使用 POST 而不是 GET 请求

    我面临的问题是我们发送到 solr jetty 的 uri 变得很长 超过 9k 字节 超出了 jetty 的默认限制 解决方案是从 GET 请求切换到 POST 请求 因为我们不想增加 jetty 可以接受的 requestHeaderS
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 如何禁用 solr 管理页面

    对于生产来说 拥有一个甚至不要求登录凭据的 solr 管理员感觉不安全 如何禁用默认的 solr 管理页面 我只是希望我的 web 应用程序使用 Solr 进行搜索词索引 我强烈建议保留管理页面用于调试目的 它在很多情况下拯救了我 有多种方
  • Solr 在 TrieDateField 上按年份过滤

    我的 Solr 模式有一个字段类型tdate班级的solr TrieDateField

随机推荐