問題タブ [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.

0 投票する
2 に答える
4345 参照

sqlite - SQLite3fts3AUTOINCREMENTが機能しない

fts3を使用してsqlite3で仮想テーブルを作成しようとしていますが、自動インクリメントとして列がありますが、値を挿入すると、列にデータが入力されません。コード:

挿入する場合:contact(name)values('abc')に挿入します。'id'フィールドはインクリメントされず、テーブル内のデータはのみ表示されます
| abc

sqlite3のfts3では自動インクリメントはサポートされていませんか?

よろしく、
ジョン

0 投票する
1 に答える
1789 参照

sql - SQLite3 複数 FTS テーブル検索

私の sqlite データベースには 3 つの fts 仮想テーブルがあります。そのうちの 2 つは 1 つのコンテンツ列で、もう 1 つは 2 つの列 (タイトルとコンテンツ) です。1 つのテーブルが記事の内容とタイトル用であり、他の 2 つのテーブルがレビューとそのメモ用であるとします。1 つのクエリですべての検索をコミットする方法はありますか? すべての結果をマージし、関連性で並べ替える必要があります。最初に記事とそのタイトル、次にレビューとメモです。私はいくつかの回避策を講じました。新しい検索ごとに表示する検索結果をテーブルに入力しますが、それはあまり良い考えではないと思います。

0 投票する
2 に答える
540 参照

android - Android: 次/前の行をフェッチすると SQLite FTS3 が遅くなる


現在、最大のテーブルに10,000行を超えるテーブルがほとんどないsqlite dbがあります。このテーブルには、id、term、definition、category の 4 つの列があります。FTS3 モジュールを使用して検索を高速化し、非常に役立ちました。ただし、テーブルから「次」または「前」の行をフェッチしようとすると、FTS3 の使用を開始する前よりも時間がかかります。

これは私が仮想テーブルを作成する方法です:

これは、次/前の行を取得する方法です。

仮想テーブルでこれらのステートメントを実行すると、次のようになります。

  • NEXT タームは~300ms以内にフェッチされ、
  • PREVIOUS タームは~200ms以内にフェッチされます

通常のテーブル(FTS3なしで作成されたもの)でそれを行うと:

  • NEXT タームは~3ms以内にフェッチされ、
  • PREVIOUS タームは~2ms以内にフェッチされます

なぜこれほど大きな違いがあるのでしょうか。この速度を改善する方法はありますか?

編集済み:
私はまだそれを動作させることができません!

0 投票する
2 に答える
5379 参照

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ます。

0 投票する
2 に答える
2444 参照

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" エラーが発生します。

見つけた:

> そしてここにエラーがあります:
>
> '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()ますか? また、そのメッセージは何でしょうか?

ご回答ありがとうございます。
乾杯!

0 投票する
1 に答える
512 参照

ruby - sqlite3gemでFTS4を有効にする

SQLiteでFTSを使用するには、適切な構成でコンパイルする必要がありました。それは機能し、シェルに「sqlite3」と入力すると、全文検索を使用できます。

残念ながら、私のRailsアプリでは、sqlite3 gemを使用すると、次のエラーが発生します。

SQLite3 :: SQLException:そのようなモジュールはありません:fts4:SELECT"items"。*FROM "items"

gemが正しいSQLiteバージョンを指していないようです。どんな手掛かり ?

0 投票する
2 に答える
2948 参照

iphone - 不明なトークナイザー: sqlite3 リクエストの icu

問題を解決してください。sqlite データベースに仮想テーブルがあります。

このテーブルにSQLクエリを作成しようとすると

データベースから次のエラーが表示されます: エラー: 'unknown tokenizer: icu'. sqlite のソースをダウンロードし、xCode4 のプロジェクトに sqlite.c を追加し、#define SQLITE_ENABLE_FTS4 を sqlite.c ファイルに追加しました。しかし、問題はまだ存在します。シミュレーターでやろうとしているのですが、それが原因でしょうか?

お願い助けて。xCode 4 を使用して iPhone で FTS4 を処理するにはどうすればよいですか? 古代の魔法を使うべきですか?:)

楽しい時間をお過ごしください!

0 投票する
1 に答える
311 参照

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"

ヒントやアイデアはありますか?

すべてのフランチェスコに感謝します