使用数据导入处理程序连接来自不同列的值

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>