Apache SolrでOracleのDataImportの設定をし実行したのですが、
データが取り込めません。
oracleへの接続設定をあえて間違った設定にし実行しても
実行結果が変わらないため、おそらくsolrからoracleへの接続が出来ていないのだと思われるのですが、
ログなどの場所がわからず何の設定が誤っているかが分かりません。
Solrのバージョン等また設定した内容は下記になります。
どなたかどこの設定が悪いのか教えてくださいますでしょうか?
###バージョン
両方ともローカル環境で構築しています。
- Apache Solr
6.6.0
- Oracle
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
実行した内容と結果
http://localhost:8983/solr/コア名/dataimport?command=full-importを実行した結果
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">5</int> </lst> <lst name="initArgs"> <lst name="defaults"> <str name="config">solr-data-config.xml</str> </lst> </lst> <str name="command">full-import</str> <str name="status">idle</str> <str name="importResponse"/> <lst name="statusMessages"> <str name="Time Elapsed">0:0:15.488</str> <str name="Total Requests made to DataSource">0</str> <str name="Total Rows Fetched">0</str> <str name="Total Documents Processed">0</str> <str name="Total Documents Skipped">0</str> <str name="Full Dump Started">2017-08-19 13:09:25</str> <str name="Full Import failed">2017-08-19 13:09:25</str> </lst> </response>
設定した内容
- 取り込むテーブル定義
USER_INFO
カラム名 | 型 |
---|---|
USER_ID | CHAR |
ADDRESS_1 | VARCHA |
ADDRESS_2 | VARCHA |
ADDRESS_3 | VARCHA |
ADDRESS_4 | VARCHA |
確認すると5件のデータが登録されていることは、
sqlplusで確認しています。
- managed-schema
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/> <field name="user_id" type="string" indexed="true" stored="false" required="true" multiValued="false"/> <field name="address" type="text_ja" indexed="true" stored="true" required="true" multiValued="false" />
- jdbcドライバー
http://www.oracle.com/technetwork/indexes/downloads/index.html
ここよりodbc6.jarをダウンロードし/dist配下に配置
- solrconfig_xml
<!-- ここから追加 --> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="oracle.*\.jar" /> <!-- ここまで追加 --> <lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
下記を新規でリクエストハンドラ設定の先頭に追加
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">solr-data-config.xml</str> </lst> </requestHandler>
- solr-data-config.xml
https://wiki.apache.org/solr/DataImportHandlerを参考に下記を設定
<dataConfig> <dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//localhost:1521/orcl" user="test" password="test"/> <document> <entity name="store" query=" SELECT ROWNUM AS ID ,USER_ID ,ADDRESS_1 || ADDRESS_2 || ADDRESS_3 || ADDRESS_4 AS ADDRESS FROM USER_INFO"> </entity> </document> </dataConfig>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。