問題タブ [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 - FTS3テーブル検索から列を除外する方法
私はそのようなテーブルを持っています:
ユーザーが「text1」列と「text2」列を検索できるようにしたいので、クエリは次のようになります。
そして可能な要求は次のとおりです。
Q:ユーザーが非表示の値で行を検索できないように、「非表示」列を検索から除外するにはどうすればよいですか?
'hidden'列を使用して、追加情報を含むセカンダリテーブルの行を参照します。
sqlite - create_all() で SQLite FTS3 テーブルを作成するように SQLAlchemy に指示するにはどうすればよいですか?
中に SQLAlchemy に FTS3 テーブルを作成してもらいたい.create_all()です。知っているように追加する必要がある特別なオプションは何CREATE VIRTUAL TABLE ... USING FTS3(tokenizer=...)ですか?
macos - SQLite FTS3 のインストール、インストール後に仮想テーブルを作成できない
私はsqllite liteとlinuxコマンドに少し慣れていないので、どんな助けでも大歓迎です! 足りないものはありますか?
sqlite-3.7.3 のインストール後、何らかの理由で、チェック時にまだ新しいバージョン(sqlite-3.7.3)が表示されません。
macbook -pro:sqlite-3.7.3 scott$ sqlite3
/usr/bin/sqlite3
macbook-pro:sqlite-3.7.3 スコット$ sqlite3 test.db
SQLite バージョン3.6.12 手順については「.help」を入力してください 「;」で終わる SQL ステートメントを入力してください
sqlite> fts3() を使用して仮想テーブル vt を作成します。
SQL エラー: そのようなモジュールはありません: fts3
sqlite インストール ダンプ:
macbook-pro:sqlite-3.7.3 scott$ sudo make install test -z "/usr/local/lib" || /Users/scott/sqlite-3.7.3/install-sh -d "/usr/local/lib" /bin/sh ./libtool --mode=install /usr/bin/install -c 'libsqlite3.la' ' /usr/local/lib/libsqlite3.la' /usr/bin/install -c .libs/libsqlite3.0.8.6.dylib /usr/local/lib/libsqlite3.0.8.6.dylib (cd /usr/local/ lib && { ln -s -f libsqlite3.0.8.6.dylib libsqlite3.0.dylib || { rm -f libsqlite3.0.dylib && ln -s libsqlite3.0.8.6.dylib libsqlite3.0.dylib; }; }) (cd /usr/local/lib && { ln -s -f libsqlite3.0.8.6.dylib libsqlite3.dylib || { rm -f libsqlite3.dylib && ln -s libsqlite3.0.8.6.dylib libsqlite3.dylib ; }; }) /usr/bin/install -c .libs/libsqlite3.lai /usr/local/lib/libsqlite3.la /usr/bin/install -c .libs/libsqlite3.a /usr/local/lib/ libsqlite3.
ranlib /usr/local/lib/libsqlite3.a
ライブラリは次の場所にインストールされています: /usr/local/lib
インストール済みのライブラリを特定のディレクトリ LIBDIR にリンクしたい場合は、libtool を使用してライブラリのフル パス名を指定するか、-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the実行中に DYLD_LIBRARY_PATH' 環境変数を使用する必要があります。
共有ライブラリに関するオペレーティング システムのドキュメントを参照してください。
ld(1) や ld.so(8) のマニュアル ページなどの詳細情報。
test -z "/usr/local/bin" || /Users/scott/sqlite-3.7.3/install-sh -d "/usr/local/bin" /bin/sh ./libtool --mode=install /usr/bin/install -c 'sqlite3' '/usr /local/bin/sqlite3' /usr/bin/install -c .libs/sqlite3 /usr/local/bin/sqlite3 test -z "/usr/local/include" || /Users/scott/sqlite-3.7.3/install-sh -d "/usr/local/include" /usr/bin/install -c -m 644 'sqlite3.h' '/usr/local/include/sqlite3. h' /usr/bin/install -c -m 644 'sqlite3ext.h' '/usr/local/include/sqlite3ext.h' テスト -z "/usr/local/share/man/man1" || /Users/scott/sqlite-3.7.3/install-sh -d "/usr/local/share/man/man1" /usr/bin/install -c -m 644 './sqlite3.1' '/usr/ local/share/man/man1/sqlite3.1' test -z "/usr/local/lib/pkgconfig" || /Users/scott/sqlite-3.7.
iphone - Macターミナルでfts3createtableを使用するsqlite3と、iphone xcodeプロジェクトでそれを使用する方法は?
私は自分のsqliteデータベースでftsを使おうとしています。データベースを作成し、すべてのレコードを挿入しました。Mac端末でsqliteクエリを使用し、iphonexcodeプロジェクトで使用しました。正常に動作しました。
今私はリンクを使用してfts3を統合しようとしています
http://pp.hillrippers.ch/blog/2009/08/08/Static+SQLite+Library+with+Unicode+Support+for+the+iPhone/
http://regularrateandrhythm.com/regular-rate-rhythm-blog/sqlite3-fts-in-IOS4.html
http://answers.oreilly.com/topic/1955-how-to-use-full-text-search-in-sqlite/
これらのリンクによると、sqliteftsクエリを作成しようとすると
Macターミナルでこのクエリを実行できません
FTS3(col1);を使用して仮想テーブルtable_nameを作成します。
これらのフィートに対処する方法について、良いチュートリアルリンクまたは解決策を教えてください。
前もって感謝します、
sql - FTS3を有効にしてSQLiteテーブルにバイナリデータを保存するにはどうすればよいですか?
アプリケーションを通常のSQLiteデータベースの使用から全文検索が有効になっているデータベースに移行しています。明らかにインデックスを付ける必要のないデジタル署名などを格納するBLOB列がいくつかあります。他の人がすべての非TEXTデータを別の非FTS3テーブルに移動し、必要に応じてFTS3テーブルと内部結合することでこれを解決することを読みましたが、これは非常に洗練されていないソリューションです。特定の列をインデックスから単純に除外する方法はありませんか?
android - Android 全文検索と ListAdapter
SQLite データベースと listadapter を使用するアプリケーションを既に持っています。全文検索機能を使用するようにアプリケーションを更新しようとしていますが、問題の解決策を見つけるのに苦労しています。基本的に、必要な _id 列を含む仮想テーブルを作成すると、データベースはそれをテキスト フィールドに変換し、自動インクリメントの主キーではなくなります。listadapter で FTS3 機能を使用するにはどうすればよいですか?
android - Android 2.2 で FTS3 を使用する SQLite で RowId が正しくない
sqlite と fts3 で、rowid 値が正しくありません。
基本的に、最初の 2 行が挿入され、rowId はそれぞれ 1 と 2 です。ただし、3 番目の挿入は 3 ではなく 4 を返します。
行を挿入するときに、contentprovider に次のログ メッセージをドロップしました。
そのログ メッセージの出力は次のとおりです。
じゃあ3はどうした?
また、sqlite データベースをエクスポートしたので、SqLite ブラウザで見ることができ、コンテンツ テーブルに 1、2、3 が表示されます。
したがって、3 が作成されましたが、4 が返されました。
テストを 10 回まで実行したところ、その後、rowId は連続していましたが、それでも 1 ずれていました。
データベース作成スクリプトは次のとおりです。
私は何かひどく間違ったことをしたと思っていますが、それが何であるかを理解することはできません. 誰でも私を助けることができますか?
編集 1:
さらにテストを行い、2.3.1 と 2.1 で同じ結果になりました。
2.1 では ID が 1、3 の場合 (2 をスキップ)
編集2:
最終的に回避策を思いつきました。しかし、これはかなり深刻なバグか何かだと思います。私がやったのは、テーブルから最大rowidを1ずつ選択し、その値を挿入時にrowidに設定することでした。その完全な吸うソリューション。非常に汚い安価なハックですが、確実に動作する唯一のものです。とにかくここにコードがあります:
編集 3:
別のフェローがこの問題を抱えていた/抱えているようです。
Android 全文検索と ListAdapter
sqlite - 今日最速の全文検索?
スポイラー :
これは別の Lucene 対 Sphinx 対何でもあり
ます。他のすべてのスレッドはほぼ 2 年前のものであることがわかったので、最初からやり直すことにしました..
要件は次のとおりです。
データサイズ:最大10GB。
行 : 数十億近くの
インデックス作成は高速である必要があります
。検索は 0 ミリ秒未満である必要があります [わかりました、冗談です... 笑ってください...しかし、これをできるだけ低くしてください]
今日の世界で、私はどのように/何を/どうやってそれを行うのですか?
編集: lucene でタイミングを計りました。1.8 GB のデータのインデックス作成に 5 分かかりました。a*
を実行しない限り、検索はかなり高速です。a* は 400 ~ 500 ms かかります。
私の最大の心配はインデックス作成です。これには非常に時間がかかり、多くのリソースが必要です!!
sqlite - iOS用Monotouchを使用してSQLiteでFTSを使用する方法
私は、テキストでいっぱいのかなり大きなsqlitedbを持つMonotouchを使用してiOSアプリを構築しようとしています。このテキストを高速で検索する必要があります。
今の私の最善の解決策はFTSモジュール(できればバージョン4)です。iOSのsqliteのデフォルトインスタンスはFTSをサポートしていないことを読みました。これが本当なら、Monotouchでsqliteのカスタムインスタンスを構築するための推奨される方法は何ですか?それとも、これを行うことはできますか?
このサイトでxcodeを使用してこれを実現する方法を説明しているのを見つけましたが、Monotouchを使用してこれを実現する方法が明確ではありません。
http://longweekendmobile.com/2010/06/16/sqlite-full-text-search-for-iphone-ipadyour-own-sqlite-for-iphone-and-ipad/
どんな助けでも大歓迎です!
android - SQLite FTS3 テーブルの行 ID を取得する
Android 開発プラットフォーム内で使用している SQLite FTS3 テーブルを作成しました ( target2.2 およびminVersion8)。たとえば、次のようにテーブルを作成しました。
longこのテーブルにデータを挿入すると、挿入されたレコードの行 ID であるI が返されることがわかっています。このテーブルから行 ID を取得するにはどうすればよいですか? 私が実行する場合:
私は-1得るCursor.getColumnColumnIndex("rowid");。また、Cursor.getColumnNames()2 つの列 (「first」と「last」) のみが表示され、「rowid」は表示されません。この問題を解決する方法に関する提案はありますか?