使用数据导入处理程序连接来自不同列的值
Concatenate values from different columns with Data Import Handler
我有一个连接到 Solr 实例进行搜索的 Django 应用程序。如何将名字和姓氏放在同一个 tune_author Solr 字段中(见下文)?
<entity name="tune" query="select id,type,name,start_page,alternate_spellings,item_id from bassculture_tune">
<field column="id" name="id"/>
<field column="type" name="type"/>
<field column="name" name="name"/>
<entity name="tune_author" query="select id,firstname,surname from bassculture_author where id=${tune.item_id.source_id.author_id}">
</entity>
现在我在结果中将名字和姓氏作为单独的字段获取,tune_author 为空。我怎样才能得到一个 tune_author Solr 字段填充名字 + 姓氏?
编辑
好的,我认为我对 SQL 查询的理解还有一个更基本的问题。
我的情况是:
author_table:
id, firstname, surname ...
source_table:
id, source_title, author_id ...
copy_table:
id, copy_title, source_id ...
tune_table:
id, tune_title, copy_id ...
所以,我想要一首曲子的作者全名。一首曲子属于一个副本。副本属于来源。最后,一个来源有作者的 ID(author_table 有作者的详细信息,我想从中重建全名)。我希望这能让事情更清楚。
可以直接在SQL中解决:
SELECT id, CONCAT(firstname, ' ', surname) AS tune_author FROM ...
它将直接在 SQL 行中为您提供串联的条目。我认为在那种情况下您不需要字段条目,但如果需要:
<field column="tune_author" name="tune_author"/>
您还可以在您的实体上使用 TemplateTransformer 来使用字符串模板:
<entity name="tune_author" query="..." transformer="TemplateTransformer">
<field column="tune_author" template="${tune_author.firstname} ${tune_author.surname}" />
</entity>
我有一个连接到 Solr 实例进行搜索的 Django 应用程序。如何将名字和姓氏放在同一个 tune_author Solr 字段中(见下文)?
<entity name="tune" query="select id,type,name,start_page,alternate_spellings,item_id from bassculture_tune">
<field column="id" name="id"/>
<field column="type" name="type"/>
<field column="name" name="name"/>
<entity name="tune_author" query="select id,firstname,surname from bassculture_author where id=${tune.item_id.source_id.author_id}">
</entity>
现在我在结果中将名字和姓氏作为单独的字段获取,tune_author 为空。我怎样才能得到一个 tune_author Solr 字段填充名字 + 姓氏?
编辑
好的,我认为我对 SQL 查询的理解还有一个更基本的问题。
我的情况是:
author_table:
id, firstname, surname ...
source_table:
id, source_title, author_id ...
copy_table:
id, copy_title, source_id ...
tune_table:
id, tune_title, copy_id ...
所以,我想要一首曲子的作者全名。一首曲子属于一个副本。副本属于来源。最后,一个来源有作者的 ID(author_table 有作者的详细信息,我想从中重建全名)。我希望这能让事情更清楚。
可以直接在SQL中解决:
SELECT id, CONCAT(firstname, ' ', surname) AS tune_author FROM ...
它将直接在 SQL 行中为您提供串联的条目。我认为在那种情况下您不需要字段条目,但如果需要:
<field column="tune_author" name="tune_author"/>
您还可以在您的实体上使用 TemplateTransformer 来使用字符串模板:
<entity name="tune_author" query="..." transformer="TemplateTransformer">
<field column="tune_author" template="${tune_author.firstname} ${tune_author.surname}" />
</entity>