我将此代码用于我的 SOLR DIH:
<dataConfig>
<dataSource name="app" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/wikipedia" user="wikipedia" password="secret" />
<dataSource name="data" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/wikipedia" user="wikipedia" password="secret" />
<document>
<entity dataSource="app-ds" name="item" query="SELECT id, title, description, date, link, location_id, source_id, company_id from item">
<field column="id" name="id" />
<field column="title" name="title" />
<field column="description" name="description" />
<field column="date" name="date" />
<field column="link" name="link" />
<entity dataSource="app-ds" name="location" query="SELECT name, coordinate from location where location_id=${item.location_id}">
<field column="name" name="location_name" />
<field column="coordinate" name="location_coordinates" />
</entity>
<entity dataSource="app-ds" name="source" query="SELECT name from source where source_id=${item.source_id}">
<field column="name" name="source_name" />
</entity>
<entity dataSource="app-ds" name="company" query="SELECT name from company where company_id=${item.company_id}">
<field column="name" name="company_name" />
</entity>
</entity>
</document>
</dataConfig>
由于我正在合并两个数据库,因此我希望 SOLR 中的每个条目都有一个唯一 ID。在我的情况下,最好的方法是为第一个数据库 ID 设置 app* ID *,为第二个数据库 ID 设置 data* ID *。
使用我上面的代码,如何将单词“app”添加到存储在 SOLR ID 字段中的 ID 前面,以便我的数据库 ID=123 和 Solr ID = app123
编辑:我猜它可能是这样的(但我不擅长 SQL)
query="SELECT app_(id)