问题标签 [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 回答
1909 浏览

sqlite - 如何从 FTS3 表搜索中排除列

我有这样的表:

我希望用户能够搜索“text1”和“text2”列,所以查询是

可能的要求是:

问:如何从搜索中排除“隐藏”列,使用户无法通过隐藏值找到行?

我将使用“隐藏”列来引用辅助表中的行以及其他信息。

0 投票
1 回答
812 浏览

sqlite - 如何指示 SQLAlchemy 在 create_all() 上创建 SQLite FTS3 表?

我希望 SQLAlchemy 在.create_all(). 我需要添加哪些特殊选项以便它知道CREATE VIRTUAL TABLE ... USING FTS3(tokenizer=...)

0 投票
1 回答
1610 浏览

macos - SQLite FTS3安装,安装后无法创建虚拟表

我对 sqllite lite 和 linux 命令有点新,所以任何帮助将不胜感激!有什么我想念的吗?

在安装 sqlite-3.7.3 之后,由于某种原因,我在检查时仍然没有看到新版本(sqlite-3.7.3)

macbook-pro:sqlite-3.7.3 scott$ which sqlite3

/usr/bin/sqlite3

macbook-pro:sqlite-3.7.3 scott$ 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) 手册页。

测试 -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" || /用户/斯科特/sqlite-3.7。

0 投票
1 回答
2388 浏览

iphone - sqlite3 在我的 mac 终端中使用 fts3 创建表以及如何在 iphone xcode 项目中使用它?

我正在尝试在我的 sqlite 数据库中使用 fts,我已经创建了一个数据库并插入了所有记录,在我的 mac 终端中使用 sqlite 查询,并在我的 iphone xcode 项目中使用它,它工作正常。

现在我正在尝试使用链接集成 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/

http://longweekendmobile.com/2010/06/16/sqlite-full-text-search-for-iphone-ipadyour-own-sqlite-for-iphone-and-ipad/

根据这些链接,如果我尝试创建一个 sqlite fts 查询

我无法在 mac 终端中执行此查询

使用 FTS3 (col1) 创建虚拟表表名;

任何人都可以给我一个很好的教程链接或解决方案,如何处理这些 fts。

提前致谢,

0 投票
2 回答
811 浏览

sql - 如何在启用 FTS3 的 SQLite 表中存储二进制数据?

我正在将应用程序从使用普通 SQLite 数据库转换为启用全文搜索的应用程序。它有几个 BLOB 列来存储数字签名之类的东西,显然不需要索引。我读到其他人通过将所有非 TEXT 数据移动到一个单独的非 FTS3 表来解决这个问题,他们在必要时与 FTS3 表进行内部连接,但这是一个非常不雅的解决方案。有没有办法简单地从索引中排除某些列?

0 投票
1 回答
1331 浏览

android - Android 全文搜索和 ListAdapter

我已经有一个使用 SQLite 数据库和 listadapter 的应用程序。我正在尝试更新我的应用程序以使用全文搜索功能,但我正在努力寻找问题的答案。基本上,当我使用必要的 _id 列创建虚拟表时,数据库会将其转换为文本字段,并且它不再是自动增量主键。我将如何将 FTS3 功能与 listadapter 一起使用?

0 投票
2 回答
1371 浏览

android - 在 Android 2.2 上使用 FTS3 的 SQLite 的 RowId 不正确

我在使用 sqlite 和 fts3 时遇到了不正确的 rowid 值。

基本上,前两行被插入,rowId 分别为 1 和 2。然而,第三个插入返回 4 而不是 3。

插入行时,我在 contentprovider 中删除了以下日志消息:

该日志消息的输出是:

那么3怎么了?

另外,我导出了 sqlite 数据库,以便可以在 Sqlite 浏览器中查看,内容表显示 1、2 和 3。

所以创建了 3 但返回了 4。

我将测试运行到 10,然后 rowId 是连续的,但仍然相差 1。

数据库创建脚本是:

我假设我做了一些可怕的错误,但无法弄清楚它是什么。谁能帮我吗?

编辑 1:
进行了更多测试,并在 2.3.1 和 2.1 上获得了相同的结果。
虽然在 2.1 中 1、3 时的 ids(跳过 2)

编辑2:
终于想出了一个解决方法。但是我认为这是一个非常严重的错误或其他东西。我最终做的是从表中选择最大 rowid 增加 1,然后将该值设置为插入时的 rowid。它是一个完整的解决方案。一个非常肮脏和廉价的黑客,但这是我唯一能可靠工作的东西。无论如何这里是代码:

编辑3:
看起来另一个人曾经/正在遇到这个问题。 Android 全文搜索和 ListAdapter

0 投票
3 回答
3386 浏览

sqlite - 今天最快的全文搜索?

剧透:
这只是另一个 Lucene vs Sphinx vs 不管什么,
我看到所有其他线程都快两年了,所以决定重新开始..

这是要求:

数据大小:最大 10 GB。
行:近十亿的
索引应该是快速
搜索应该在 0 毫秒以下 [好吧,笑话...笑...但保持这个尽可能低]

在当今世界,我该怎么做/做什么/怎么做?

编辑:我在 lucene 上做了一些计时,为了索引 1.8gb 数据,花了 5 分钟。
搜索速度非常快,除非我执行a*。a* 需要 400 ~ 500 毫秒。
我最担心的是索引,这需要 loooonnnnggg 时间和大量资源!

0 投票
2 回答
1833 浏览

sqlite - 如何通过 iOS 的 Monotouch 在 SQLite 中使用 FTS

我正在寻找使用 Monotouch 构建一个 iOS 应用程序,该应用程序具有相当大的 sqlite db 充满文本。我需要对此文本进行快速搜索。

我现在最好的解决方案是 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/

任何帮助深表感谢!

0 投票
1 回答
9450 浏览

android - 获取 SQLite FTS3 表的行 ID

我创建了一个我在 Android 开发平台中使用的 SQLite FTS3 表(target是 2.2 和minVersion8)。例如,我创建的表如下:

我知道当我向这个表中插入数据时,long返回的是我,也就是插入的记录的行ID。如何从此表中获取行 ID?如果我执行:

我得到-1Cursor.getColumnColumnIndex("rowid");。此外,Cursor.getColumnNames()仅显示两列(“第一”和“最后”)而不是“rowid”。关于如何解决这个问题的任何建议?