いくつかの mdb ファイルを solr にインポートする必要があります。一部の mdb ファイルはドキュメントとして適切にインデックス化されていますが、そうでないものもあります。Solr 4.10.0 とucanaccess ver. を使用しています。2.0.9 以下は、ログからのスクリーン ショットです。
一部の欠落しているフィールド値 (スクリーン ショットの場合は 6 フィールド) についてonError="continue"
は、dataimport-config で設定しました。
<document>
<entity name="Book" dataSource="a" query="select bkid AS id, bkid AS BookID,bk AS BookTitle, betaka AS BookInfo, cat as cat from 0bok WHERE bkid = 29435">
<field column="id" name="id"/>
<field column="BookID" name="BookID"/>
<field column="BookTitle" name="BookTitle"/>
<field column="cat" name="cat"/>
<entity name="Category" dataSource="a" query="select name as CatName, catord as CatWeight, Lvl as CatLevel from 0cat where id = ${Book.CAT}">
<field column="CatName" name="CatName"/>
<field column="CatWeight" name="CatWeight"/>
<field column="CatLevel" name="CatLevel"/>
</entity>
<entity name="Pages" dataSource="a1" onError="continue" query="SELECT nass AS PageContent, page AS PageNum FROM book ORDER BY page">
<field column="PageContent" name="PageContent"/>
<field column="PageNum" name="PageNum"/>
<entity name="Titles" dataSource="a1" onError="continue" query="SELECT * FROM title WHERE id = ${Pages.PAGENUM} ORDER BY sub">
<field column="ID" name="TitleID"/>
<field column="TIT" name="PageTitle"/>
<field column="SUB" name="TitleWeight"/>
<field column="LVL" name="TitleLevel"/>
</entity>
</entity>
</entity>
</document>
これは、6 つの未定義のデータ フィールドを持つデータベースで考慮されたテーブルのスクリーン ショットです。
この mdb ファイルのデータ インポートの最後に、次の応答を受け取りました。
最終更新: 09:12:04 要求: 31,952、取得: 78,980、スキップ: 0、処理: 0 開始: 18 分前
0が処理されたことが示されています!
他にも mdb ファイルが進行中です。つまり、1 つの処理済みファイルが応答で生成されますが、ログに次のエラーが記録されています。
2014 年 10 月 7 日 9:28:08 AM エラー SolrWriter 例外が発生し、solr がコミットされました。
このライターは OutOfMemoryError にヒットしました。コミットできません...
と
SolrIndexWriter IndexWriter を閉じるときにエラーが発生しました
OutOfMemoryError; 流せない…
どうすればこの問題を解決できますか? なぜSolrはこのすべてのレコードをリクエストして取得し、その後処理してインデックスを作成しないのですか?!