问题标签 [fts4]
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.
android - 在 SQLite FTS 中的任何其他内容之前首先要准确的短语?
假设搜索输入是“什么是”。这将匹配“whatever it is”以及“what is”,这是确切的短语。现在,我如何在排序中首先制作确切的短语?
从昨天开始我就一直在考虑这个问题,我一直在想出不同的解决方案,但每个解决方案都有自己的缺陷。
不过,这是我失败的方法(假设 input = 'what is'):
- 这个问题是两个 SELECT 不是互斥的,所以会有重复。
- 我不能使用 UNION,因为它们在等级列和片段函数上有所不同(首先将具有 START|what is|END,其他将具有 START|what|ENDSTART|is|END)。
- 我也不能使用这个(我之前的问题),因为 MATCH 在 ORDER BY 子句中不起作用(因为结果表/选择不是原始 FTS 表)。
这是我目前的解决方案:
我在这里做的是:
- 在最里面的 SELECT 中,我正在做排序
- 在下一个 SELECT 中,我将过滤掉重复项(这会起作用,因为我还没有使用片段。
- 最后,如果 rowId 在第二个选择中,我将选择该片段。
正如您所料,这里的问题是订购完全消失了:(。
编辑:
我在 Android 中使用 FTS4(我不使用增强的查询语法,因为我不确定 Android 是否支持)。
sqlite - 使用没有列名的视图的 SQLite FTS4 外部内容
我正在使用FTS4
withsqlite 3.8.10
并且正在尝试设置这样的架构:
在这个玩具示例中,我有一个简单的表Test
和一个视图,TestView
它等效于该表。我从视图中创建了一个FTS4
索引。TestFTS
然后我填充一些数据如下:
到现在为止还挺好。现在我想查询我的数据,例如:
这应该返回两行:
鲍勃
账单
相反,它返回单行并且该行是空白的。如果我从TestFTS
表中查询所有数据,那么我可以看到这些值,但如果我不能进行MATCH
类型查询,显然它没有多大用处:
鲍勃
账单
简
知道为什么在对没有列名的外部内容sSQLite
使用查询时不返回数据,甚至不返回正确的行数吗?MATCH
VIEW
====
更新:我尝试使用sqlite 3.13
命名列视图,但遇到了同样的问题。
sql - 将 MATCH 与 AND/OR 运算符与参数一起使用在 SQLite 中不起作用
我在使用参数时使用匹配和/或运算符时执行 select 语句时遇到问题。
该声明如下所示:
但是当我用实际值更改@param1 和@param2 时,例如像这样
它工作正常。
我想问题是我的 AND 语句周围的那些单引号。有什么办法可以避免它们,但仍然可以使用和/或操作符,或者在其他地方有问题?
sqlite - 使用创建表(CreateFlags.FullTextSearch4) 不会自动增加 PK
我在 Visual Studio 2015 上使用 Xamarin 和这个 SQLite 插件:https ://github.com/praeclarum/sqlite-net
这是我的算法和对问题的解释:
然后:
上面的代码为 insertCount 返回 1,并且 item._id 总是按应有的方式更新。但是当我稍后查询该表时,所有行的 _id 始终为 0。例如:
这似乎有效,但感觉不对,它似乎并没有返回所有可能的结果。但主要问题是它为每个 _id 返回 0。我可以通过以下方式进行检查:
所有行 _id 都是 0。知道为什么以及如何解决它吗?
如果我创建没有 fts4 标志的表,我没有问题。但后来我无法进行 MATCH 搜索。
谢谢
ios - SQLite FTS4 复合 MATCH 不适用于 FMDB(iOS,Objective c)
我有一个简单的 FTS4 查询:
这个查询很好用SQLiteManager
(我得到了一些结果),但是当我用 FMDB 执行这个查询时,我没有得到结果(没有错误,但也没有结果)。
当我将此查询与 FMDB 一起使用时,它可以工作:
似乎 FMDB 的大括号有问题。牙套有替代品吗?
FMDB 中是否存在错误?我使用简单的标记器:
android - 使用 fts4 的虚拟表未创建 android
我正在尝试使用fts4
外部内容表创建一个虚拟表。该应用程序运行良好,API 23
但当我运行它时API 16
它崩溃了。
创建语句:
我的日志猫:
android - 什么是外部内容表?与普通虚拟表相比有什么优势?
什么是外部内容表,如何使用它们代替 fts3 虚拟表进行全文搜索?是否值得使用 fts4 而不是 fts3?
android - SQLite 检查表是否为 FTS4
我正在开发一个使用带有 FTS4 表的 SQLite 数据库的 Android 应用程序。
在应用程序中有一个从外部存储器导入数据库的选项。需要检查此数据库以确认它具有所有正确的表和列。我已经有了执行此操作的代码,但是我不知道如何检查表是“正常”还是 FTS4。这将导致稍后对MATCH
它们进行查询时出现问题。
我能想到的检查表是否为 FTS4 的唯一方法是进行随机查询,MATCH
如果出现错误,那是因为它们不是。
有没有更好的方法来做到这一点,就像只用一个命令?
android - 从 FTS 表中读取数据?
在其中一个实现功能集的应用程序中,必须直接从 sqlite 数据库执行频繁的搜索查询。我发现FTS可能是执行更快搜索的更好方法。我创建了它,但它没有返回任何数据。我通过打开 db 文件进行检查,Virtual Table Created 但那里没有数据。
我的问题是,虚拟表是否需要在获取任何数据之前手动插入数据。任何建议!
sqlite - SQLite:从 FTS3 迁移到 FTS4
我有一些已经使用 FTS3 扩展的 SQLite 数据库项目。假设我想改用 FTS4。为此必须做些什么?是否需要创建新表、重新填充或其他任何内容?或者只是将单词'fts3'改为'fts4'就足够了?