gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:28:10 26 4
gpt4 key购买 nike

我想在 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: no protocol: nullselect f.feedurl, f.feedsource, c.categoryname from feeds f, category c where f
.feedcategory = c.categoryid

URL us NULL 意味着它没有将 feedurl 分配给 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>

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

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

关于solr - 我想在 Solr 的 DataImporthandler 中使用多个数据源,并在查询父实体中的数据库后在子实体中传递 URL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com