問題タブ [fts3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sqlite - SQLite3fts3AUTOINCREMENTが機能しない
fts3を使用してsqlite3で仮想テーブルを作成しようとしていますが、自動インクリメントとして列がありますが、値を挿入すると、列にデータが入力されません。コード:
挿入する場合:contact(name)values('abc')に挿入します。'id'フィールドはインクリメントされず、テーブル内のデータはのみ表示されます
| abc
sqlite3のfts3では自動インクリメントはサポートされていませんか?
よろしく、
ジョン
sql - SQLite3 複数 FTS テーブル検索
私の sqlite データベースには 3 つの fts 仮想テーブルがあります。そのうちの 2 つは 1 つのコンテンツ列で、もう 1 つは 2 つの列 (タイトルとコンテンツ) です。1 つのテーブルが記事の内容とタイトル用であり、他の 2 つのテーブルがレビューとそのメモ用であるとします。1 つのクエリですべての検索をコミットする方法はありますか? すべての結果をマージし、関連性で並べ替える必要があります。最初に記事とそのタイトル、次にレビューとメモです。私はいくつかの回避策を講じました。新しい検索ごとに表示する検索結果をテーブルに入力しますが、それはあまり良い考えではないと思います。
android - Android: 次/前の行をフェッチすると SQLite FTS3 が遅くなる
現在、最大のテーブルに10,000行を超えるテーブルがほとんどないsqlite dbがあります。このテーブルには、id、term、definition、category の 4 つの列があります。FTS3 モジュールを使用して検索を高速化し、非常に役立ちました。ただし、テーブルから「次」または「前」の行をフェッチしようとすると、FTS3 の使用を開始する前よりも時間がかかります。
これは私が仮想テーブルを作成する方法です:
これは、次/前の行を取得する方法です。
仮想テーブルでこれらのステートメントを実行すると、次のようになります。
- NEXT タームは~300ms以内にフェッチされ、
- PREVIOUS タームは~200ms以内にフェッチされます
通常のテーブル(FTS3なしで作成されたもの)でそれを行うと:
- NEXT タームは~3ms以内にフェッチされ、
- PREVIOUS タームは~2ms以内にフェッチされます
なぜこれほど大きな違いがあるのでしょうか。この速度を改善する方法はありますか?
編集済み:
私はまだそれを動作させることができません!
sql - INTEGER列でのSQLiteFTS3の使用
SQLite FTS3(実際にはFTS4)を使用して、整数列のテーブルにインデックスを付けたいと思います。概念的には次のようになります。
FTS3はrowid以外のすべての列をTEXTとして扱うことを知っているので、2つのテーブルを使用する必要があります。
ドキュメント、または特定のドキュメントのページをクエリできるようにしたい:
NATURAL JOINでは、ROWIDの同期を確保する必要があると思いますが、それを行うための最良の方法は何ですか?FOREIGN KEYまたは他の制約を使用する必要がありますか?副選択は結合よりも優れていますか?
すでにデータベースにあるドキュメントとページを挿入して、テキストコンテンツを上書きしたいのですが。これはSQLを介してプログラムで可能ですか、それとも行が情報テーブルにすでに存在するかどうかを確認する必要がありますか?
また、特定のドキュメントの両方のテーブルからDELETE FROMを実行する必要があります。これを単一のステートメントで実行する方法はありますか?
すべてのアドバイスに感謝していますが、私はSQL初心者なので、コードサンプルは特に高く評価されています。
更新:ここで外部キー制約を作成する方法は、私にはまったくわかりません。metadata親テーブルとして選択した場合(双方向の制約がない場合は、これが私の好みになります):
取得しますError: vtable constructor failed: data(当然のことながら、はのdocidエイリアスであるためですrowidが、もちろん、を除くすべての列rowidはでなければならないため、別の列を使用することはできませんTEXT)。
一方、逆の方法を試してみると、次のようになります。
テーブルの構築は成功しますが、試してみると:
取得しError: foreign key mismatchます。
php - LInux: PHP に FTS3 (sqlite3 用) をインストールするには?
私は質問をしようとしましたphp - Is there a binary package for php5-sqlite3 with fts3 enabled? - Ubuntuに尋ねる - スタック交換; しかし、そこにはサイコロはありません-ここで別の言葉でもう一度試します.Ubuntu Linuxサーバー上のPHPのSQLite3でFTS3を有効にするにはどうすればよいですか?
Sqlite を使用して Mediawiki で FTS3 を有効にしたいのですが、通常は " no such module: fts3" エラーが発生します。
見つけた:
- PHPでsqlite3を有効にする方法は? - スタック オーバーフロー- を削除し、ソースから sqlite3 をインストールすることをお勧めし
php5-sqlite3ます (ただし、FTS3 については特に言及していません)。 - Old Nabble - SQLite - PHP < 5.3での FTS3 インデックス作成:
> そしてここにエラーがあります:
>
> 'SQLSTATE[HY000]: General error: 1 no such module: fts3'
>コンパイル時のオプションがあります: SQLITE_ENABLE_FTS3
...最終的には、PHP用のSQlite3用にFTS3を有効にする方法は他にないと言っています-ソースからphp用のsqliteを構築する以外に? 私には実稼働サーバーに対する権限がないため、これは私にとっては良い選択肢ではありません... そのため、もう一度お尋ねします: FTS3 を有効にするのに役立つ何らかのバイナリ パッケージはありますか?
そのためのバイナリパッケージがない場合-phpのsqlite3部分が.soオブジェクトとしてコンパイルされると思います。.soどういうわけか、特定のサーバーディレクトリ用に「外部」をロードするようにPHPを説得する方法はありますか( ini_setを使用してdisplay_errorsローカルに変更する方法と同様)?
編集: おまけの質問: ソースから FTS3 を有効にして sqlite3 をインストールしたとします。PHP は に何らかのメッセージ/指示を表示しphpinfo()ますか? また、そのメッセージは何でしょうか?
ご回答ありがとうございます。
乾杯!
ruby - sqlite3gemでFTS4を有効にする
SQLiteでFTSを使用するには、適切な構成でコンパイルする必要がありました。それは機能し、シェルに「sqlite3」と入力すると、全文検索を使用できます。
残念ながら、私のRailsアプリでは、sqlite3 gemを使用すると、次のエラーが発生します。
SQLite3 :: SQLException:そのようなモジュールはありません:fts4:SELECT"items"。*FROM "items"
gemが正しいSQLiteバージョンを指していないようです。どんな手掛かり ?
iphone - 不明なトークナイザー: sqlite3 リクエストの icu
問題を解決してください。sqlite データベースに仮想テーブルがあります。
このテーブルにSQLクエリを作成しようとすると
データベースから次のエラーが表示されます: エラー: 'unknown tokenizer: icu'. sqlite のソースをダウンロードし、xCode4 のプロジェクトに sqlite.c を追加し、#define SQLITE_ENABLE_FTS4 を sqlite.c ファイルに追加しました。しかし、問題はまだ存在します。シミュレーターでやろうとしているのですが、それが原因でしょうか?
お願い助けて。xCode 4 を使用して iPhone で FTS4 を処理するにはどうすればよいですか? 古代の魔法を使うべきですか?:)
楽しい時間をお過ごしください!
ios - 以下:iOS用Monotouchを使用してSQLiteでFTSを使用する方法
私は現在、MonoTouch、SQLite、FTS3に関するこの小さなチュートリアルに従っています:Monotouch を使用してSQLiteでFTSを使用する方法
手順1と2は正常に完了しました。残念ながら、手順3で問題が発生しました。これは、iPhone monotocuhプロジェクトをコンパイルしようとすると、次のエラーが発生したためです。
エラー1:mtouchが次のメッセージで失敗しました:プロセスがコード1で終了しました:/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch- fobjc-abi-version = 2 -miphoneos-version-min = 4.2 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk /var/folders/lu/luWKJVufEMO0MYd3+T3MJ++++TI /-Tmp-/tmp4f24ee90.tmp/main.x86.o -o/var/folders/lu/luWKJVufEMO0MYd3+T3MJ++++TI/-Tmp-/tmp4f24ee90。tmp / Iusuite -framework CFNetwork -framework AssetsLibrary -framework CoreTelephony -framework EventKit -framework Foundation -framework CoreMotion -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework iAd -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreFoundation -framework CoreGraphics -framework CoreLocation -framework ImageIO -framework Security -framework CoreMedia -framework CoreVideo -framework ExternalAccessory -framework EventKitUI -framework QuickLook -framework AudioToolbox -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream-liconv-lmono-2。0 -lmonotouch -L / Developer / MonoTouch / SDKs / MonoTouch.iphonesimulator.sdk / usr / lib -u _catch_exception_raise -L / Users / user / Development / MonoDevelop /.../ -lSQLite3_iOS -force_load / Users / user / Development / MonoDevelop /.../ Libraries / libSQLite3_iOS.a
ld:-lSQLite3_iOSのライブラリが見つかりませんcollect2:ldが1つの終了ステータス(1)を返しました(Iusuite.Application)
これは私がモノタッチの追加コマンドとして使用するものです
-gcc_flags "-L $ {ProjectDir} -lSQLite3_iOS -force_load $ {ProjectDir}/Libraries/libSQLite3_iOS.a"
ヒントやアイデアはありますか?
すべてのフランチェスコに感謝します