1

コピーフィールド値にプレフィックスを追加することは可能ですか?

したがって、さまざまなタイプのエンティティがあり、一意のキーとして使用するために、それらのIDをフィールドにコピーしたいと思います。ただし、情報はデータベースから取得されるため、キーは異なるエンティティで同じである可能性があります。

私がやりたいのは、"company_id"を'"company"+ _ databaseId'としてコピーし、entityt_idを'" entity" + _databaseId'としてコピーすることです。

4

2 に答える 2

1

DIHを使用してSolrにデータをロードしている場合は、ScriptTransformerを使用できます。

<script><![CDATA[
    function addFields(row)    {
        var databaseId = row.get('databaseId');
        row.put(databaseId_'company'+, "value");
        return row;
    } 
]]></script>

そして動的フィールドを定義します:-

<dynamicField name="*_company" type="string" indexed="true" stored="true"/>
于 2012-12-19T17:19:48.070 に答える
0

CopyFieldは単なるコマンドであり、あるフィールドを別のフィールドにコピーするために使用されます。copyFieldにプレフィックスを追加することはできません。動的フィールドを使用して問題を解決できます。フィールドは次のように定義できます。

<dynamicField name="*_company" type="string" indexed="true" stored="true"/>
<dynamicField name="*_entity" type="string" indexed="true" stored="true"/>
<field name="database_ids" type="string" indexed="true" stored="true"/>

copyFieldsを次のように定義します。

<copyField source="*_company" dest="database_ids"/>
<copyField source="*_entity" dest="database_ids"/>

会社テーブルからアイテムを取得する場合は、インデックスを作成し、エンティティcompany_id_companyテーブルからアイテムを取得する場合は、フィールドとしてインデックスを作成します。次に、すべてのIDがdatabase_idsフィールドにコピーされます。entity_id_entity

于 2012-12-19T15:30:25.903 に答える