问题标签 [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 - SQLite 正则表和 fts 表
我有表新闻(id、news_id、news_title)并创建 FTS 表:
我使用触发器使表 NEWS 和 news_search 保持同步:
问题:如何使用搜索?当我在 news_search 表中执行 MATCH 时,它只返回该表中的记录,但我需要新闻表中的 *news_id*。可能我应该将 *news_id* 列添加到news_search表吗?
在 sqlite 中使用 fts 的正确方法是什么?
javascript - 使用 SQLite FTS3,如何加入或嵌套 SELECT 语句以获取行加片段?
我有一个名为categories
columns的 SQLite FTS3 虚拟表category, id, header, content
。我想搜索它,并让结果同时包含列数据和snippet()
结果。
最终期望的行为是显示搜索词的每个匹配项的类别和 ID,然后如果在内容列中找到搜索词,则还显示每个片段。像这样:
我现在可以将搜索行结果和片段作为单独的函数获取。这将搜索表格并正确打印出 row.elements:
这将搜索content
列中的片段,并打印出它们的列表:
到目前为止,我可以想象两种可能的方法:要么我可以以某种方式组合 SELECT 查询——尽管我找不到任何使用片段()函数的 JOINing 查询示例。或者,我可以创建一个新函数findSnippet()
,并在每次遍历result.rows
数组后调用它。这些方法中的任何一种都可能奏效,还是有更好的方法来处理这个问题?
android - 将 selectionArgs 绑定到跨多列的 FTS3 查询
我构造选择字符串以跨多个列执行 FTS3 搜索:
我还传递了包含搜索词的 selectionArgs 。问题是我在参数绑定期间遇到异常:
11-30 13:22:27.475 26281-26323/com.example.myapp W/SuggestionsAdapter:搜索建议查询抛出异常。java.lang.IllegalArgumentException:无法在索引 2 处绑定参数,因为索引超出范围。该语句有 0 个参数。在 android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212) 在 android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166)
当我用硬编码的搜索词和 set 替换 MATCH 参数字符串中的问号时selectionArgs = null
,查询会起作用并返回正确的结果。
如何将 selectionArgs 绑定到跨多列搜索的 FTS3 查询?
sqlite - 使用自定义标记器的 sqlite 数据库的可移植性
我有一个 sqlite 数据库,它使用自定义标记器:
是否所有想要从此数据库中读取数据的客户端都需要在他们的 sqlite-driver 中使用相同的标记器?或者内部标记器数据结构是否可以在不实现自定义标记器的情况下使用?
android - 无查询时从虚拟表中获取所有行
我需要知道当用户不输入任何文本时是否可以从 fts 表中获取所有行。
我需要这个,因为当应用程序启动时,我需要显示所有行。
我怎样才能做到这一点?
android - Android sqlite fts3 匹配和比较整数/浮点数
我们有一个没有增强语法(Android !!!)的 sqlite fts3 表,我们使用这样的查询:
这在具有 fts4 和增强语法的 iOS 上运行良好,validTo 比较不能按预期工作:
这与全文搜索表包含字符串有关。但话又说回来 - 它适用于 iOS。在 iOS 上,我们有时会使用十进制值,1389999600000.0
但我们已经尝试过,没有任何改变。
关于如何解决这个问题的任何线索?
c# - Windows 上的 FTS3 设置
我正在尝试在 SQLite 中使用 FTS3。虚拟表是使用 sqlitebrowser_200_b1_win 创建的。
CREATE VIRTUAL TABLE tbl1 USING FTS3 ( col1 TEXT, col2 TEXT);
当我插入一些数据时,它说:no such module FTS3
insert into tbl1(col1, col2) values ('c1', 'c2');
sql - FTS(全文搜索)sqlite如何实现FTS Table?
我正在尝试创建一个类似 android 的应用程序并希望允许快速搜索,因此正在研究 FTS for sqlite for Android。我知道如何创建它,但想知道一些事情:
Table_words - 我的单词表
如果我创建一个新的 FTS 表,即 Table_words_fts - 它是否替换了 table_words,它是作为另一个表添加的吗?
如果添加为另一个表,我是否会像通过代码将数据添加到 table_words 一样同时将数据添加到 FTS 表?
如果是这样,我可以省略一些不必要的列并包括不在 table_words 表中的其他列吗?
如果我只是替换数字 1 中的表,那么它会影响常规查询吗?
如果我不替换它,但不需要将数据存储在新的 FTS 表中,那么它是否只是为了能够更快地读取表而添加?
到目前为止我的理解如下,它是一个单独的表,添加我在整个代码中添加数据,我可以省略一些列但不能添加新列。此外,我存储数据的方式与将其添加到其他表的方式完全相同......
这是我使用它的想法......创建表格:
同时创建常规表:
其余的我将按照常规方式进行......但回顾一下:试图弄清楚表是否是在表之外创建的?如果数据也定期存储在其中?
java - 如何在 sqlite 中查询一个 fts 表以查找一个匹配的列和另一个不匹配特定查询的列?
我有一个建议表(FTS4),用于为 Android 操作栏搜索中的查询提供建议。我需要在表中查询其中一个 column( suggest_text_1
) 与查询文本匹配且另一 column( data_type
) 与特定查询不匹配的建议,例如2
。
我当前的选择文本是table_suggestions MATCH ?
,我正在尝试使用以下选择参数文本替换'?'
- suggest_text_1:*S1* AND data_type:NOT 2
。
问题是,即使数据在那里,表格也为我提供了任何建议。可以指出我执行此查询的正确方法吗?