FTS インデックスを使用して SQLite テーブルに入る 24,888 のレコードがあります。コンマ区切りの .csv ファイルのセットから .import を使用してテーブルをロードします。
プラットフォームは Linux - CentOS 6.2 で、このディストリビューションでサポートされているバージョンは SQLite 3.6.20 です。
これはすべて、 FTS 3 を使用して検索システムを構築することで機能しています (Apache と PHP を使用)。
FTS 4 の機能を取得するために (必要な統計を使用して)、最近手動で最新の SQLite 3.7.13 に更新しました。
残念ながら、.csv からインポートすると、FTS 3 テーブルまたは FTS 4 テーブルのどちらであるかに関係なく、半分以上の行/レコードが欠落しています。24,888 ではなく 12,224 しか取得できません。
インポート中に報告されたエラーはありません。
データの最後の列は (一部のレコードでは) 大量のテキストであり、場合によっては最大 200K ~ 300K になります。テキストには、カーリー二重引用符や m-dash または n-dash などの文字がまだいくつかあります。
.immport コードに何かがファイルの終わりのように見える可能性はありますか?
ワード カウント ユーティリティ 'wc -l' は、24,888 行すべてを表示します。
最後のポイントとして、.csv ファイルは Linux システム上で実行されている Python 2.6.6 を使用して作成され、元の改行は (|| に) エスケープされているため、キャリッジ コントロールと改行は統一されていると思います。SQLite 3.6 では無視されているが、3.7 では認識されている改行文字または改行文字が欠落しているのかもしれません。
FTS 4 の追加機能が本当に必要ですが (主に、matchinfo を使用して検索結果に関する統計をレポートするため)、すべてのデータを読み込めないとダメです!
ありがとう、 ローレンス・ブレバード カリフォルニア州サンノゼ
[keywords2@keywords2c6x64 grant-import-tools]$ /usr/local/bin/sqlite3.7 --version
3.7.13 2012-06-11 02:05:22 f5b5a13f7394dc143aa136f1d4faba6839eaa6dc
[keywords2@keywords2c6x64 grant-import-tools]$ /usr/bin/sqlite3 --version
3.6.20
[keywords2@keywords2c6x64 grant-import-tools]$ uname -a
Linux keywords2c6x64 2.6.32-220.23.1.el6.x86_64 #1 SMP Mon Jun 18 18:58:52 BST 2012 x86_64 x86_64 x86_64 GNU/Linux
[keywords2@keywords2c6x64 grant-import-tools]$ cat /etc/redhat-release
CentOS release 6.2 (Final)