0

スキーマレス モードで dataimporthandler をチェーンしました。以下に示すように、構成パラメーター「add-unknown-fields-to-the-schema」を dataimporthandler に追加し、すべてを構成します。Dataimporthandler はデータをインポートして正常に動作しますが、solr は不明なフィールドをスキーマに追加できません。既存のフィールドでのみ機能します。リクエストに対する dataimporthandler の回答は次のとおりです。

{ "responseHeader": { "status": 0, "QTime": 0 }, "initArgs": [ "defaults", [ "update.chain", "add-unknown-fields-to-the-schema", "config", "db-data-config.xml" ] ], "command": "status", "status": "idle", "importResponse": "", "statusMessages": { "Total Requests made to DataSource": "1", "Total Rows Fetched": "273", "Total Documents Processed": "273", "Total Documents Skipped": "0", "Full Dump Started": "2016-06-21 13:29:48", "": "Indexing completed. Added/Updated: 273 documents. Deleted 0 documents.", "Committed": "2016-06-21 13:29:49", "Time taken": "0:0:0.543" } }

私の設定は問題ないことがわかります。以下はsolrconfigファイルです。

<requestHandler name="/dataimport"   class="solr.DataImportHandler">
    <lst name="defaults">
         <str name="update.chain">add-unknown-fields-to-the-schema</str>
         <str name="config">db-data-config.xml</str>
   </lst>

データベースから不明なフィールドを追加できるようにしたい。

4

1 に答える 1

2

DataImportHandler は、スキーマレス モードより優先されます。自動マップ (列名をフィールド名に) しようとしている場合は、そのフィールドがスキーマに存在するかどうかをチェックして、そのマップ方法を知るように実装されています。そうすれば、スキーマで必要なフィールドのみを定義でき、残りは無視されます。スキーマレス モードがそれを補うことができることも、フィールド除外の代替メカニズムを提供することもありません (すべてのフィールドを受け入れることがデフォルトである場合に必要になります)。

DIH でフィールド マッピングを明示的に定義すると、機能するはずです。

どのフィールドが表示されるか本当にわからない場合は、DIH でプルするのではなく、データベース コンテンツから CSV、XML、または JSON ファイルを生成し、Solr にプッシュする方がよい場合があります。

于 2016-06-22T14:19:16.720 に答える