- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个类似 Android 的应用程序,并希望允许快速搜索,因此正在研究适用于 Android 的 sqlite 的 FTS。我知道如何创建它,但想知道一些事情:
Table_words - 我的单词表
如果我创建一个新的 FTS 表,即 Table_words_fts - 它是否会替换 table_words,是否会作为另一个表添加?
如果作为另一个表添加,我是否可以像通过代码添加数据到 table_words 一样,同时将数据添加到 FTS 表中?
如果可以,我可以省略一些不必要的列并包含 table_words 表中没有的其他列吗?
如果我只是替换 1 中的表,那么它会影响常规查询吗?
如果我不替换它,但不需要在新的 FTS 表中存储数据,那么添加它只是为了能够更快地读取表吗?
到目前为止我的理解如下,它是一个单独的表,添加我在整个代码中向其中添加数据,并且我可以省略一些列但不能添加新列。另外,我存储数据的方式与将其添加到其他表的方式完全相同......
这是我使用它的想法......创建表:
// create FTS tables for quicker matches for search
db.execSQL("CREATE VIRTUAL TABLE " + TABLE_WORDS_FTS + " USING fts3("
+ KEY_ID + ", " + KEY_DICTIONARYID + ", " + KEY_WORD1 + " , "
+ KEY_WORD2 + " , " + KEY_WORD3 + ", " + KEY_WORD4 + " " + ");");
同时创建常规表:
// Words table create statement
private static final String CREATE_TABLE_WORDS = "CREATE TABLE "
+ TABLE_WORDS + "(" + KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_DICTIONARYID + " INTEGER," + KEY_WORD1 + " TEXT," + KEY_WORD2
+ " TEXT," + KEY_WORD3 + " TEXT," + KEY_WORD4 + " TEXT" + ")";
db.execSQL(CREATE_TABLE_WORDS);
其余的我将按照常规方式进行...但回顾一下:试图弄清楚表是否是在表之外另外创建的?数据是否也定期存储在其中?
最佳答案
是的,它的作用就像一个常规表格,它不会取代现有的表格。
是的,您需要将数据单独添加到 FTS 表中,但如果您愿意,可以通过触发器来完成。
是的,您可以有不同的列。
您不会替换原始表,因此不会影响这些查询。当然,您可以对 FTS 表运行常规查询。
是的,您可以使用其他地方的内容创建 FTS 表;请参阅Contentless FTS Tables了解详情。
关于sql - FTS(全文搜索)sqlite如何实现FTS表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640064/
您好,感谢您的关注! 我正在搜索包含某些带有全文搜索的字符串的文章,如下所示: SELECT * FROM Articles_fts WHERE body MATCH 'monkey OR banan
我已经下载了最新的 SQLite 3.7.15.2 shell (Win32),并尝试完全按照 http://sqlite.org/fts3.html#section_3 中的说明执行 FTS 示例之
当我在 sqlite 引擎(android 或 sqlitebrowser)中执行以下查询时,它会抛出一个异常,指出无法在请求的上下文中使用函数 MATCH。 select a.Body1,
我有一个 ~32mb 的大数据库,其中包含 4 种语言的大量文本。包括阿拉伯语和乌尔都语。我需要以最有效的方式(速度和大小)搜索此文本。 我正在考虑 FTS,并试图找出实现它的方法。现在我正在阅读 h
我在我的应用程序中使用 SQLite FTS3 表。但使用 FTS 表搜索对非英文字符区分大小写。 是否有简单的方法使对 unicode 符号的搜索支持不区分大小写? 最佳答案 当您在 FTS 表中插
我知道我们可以在财务工具箱中使用“tomonthly”函数,但这会返回一个默认的每月数据,取每个月的最后一个工作日。 如果我想要每个月的第一个工作日怎么办? 我已经尝试通过以下方式将“ED”设置为 1
SQLite FTS 的文档 implies应使用 INSERT、UPDATE、DELETE 等填充和更新 FTS 表。 这就是我正在做的 - 添加行,删除它们等,但最近我注意到,一旦我创建了 FTS
我在 SQLite 中使用 FTS,我有数据: abc def go to to go jdk sqlite let go go on going to not going 我使用查询:select
我正在尝试创建一个类似 Android 的应用程序,并希望允许快速搜索,因此正在研究适用于 Android 的 sqlite 的 FTS。我知道如何创建它,但想知道一些事情: Table_words
我刚刚发现可以使用虚拟表来搜索数据库内容。然而,我已经坐了两天了,我想我每过一个小时就变得更愚蠢。有人可以给我提供一个简单的例子来说明如何做到这一点吗? 这就是我所在的位置:我有一个数据库类: pub
我正在使用 MySQL 5.6.10 的 InnoDB FTS,并且想更改 boolean 运算符的默认行为。 Note In implementing this feature, MySQL use
我无权访问 information_schema。我可以获得数据库的 FTS 索引列表吗?以下查询有效,但由于权限不足而失败。 SELECT i.name as index_name FROM inf
假设我有以下伪模式,其中 1-many 关系是使用 Postgres 数组建模的: CREATE TYPE quotes AS ( text CHARACTER VARYING, is_di
在一个项目中,模式是这样的: id , key, value key和 value列是 varchar,表是 InnoDB . 用户可以根据键值对进行搜索……在 MySQL 中查询的最佳方式是什么?我
如标题所述,您如何知道查询是否使用 FTS 索引? 通常显示using index condition。 我的查询是: SELECT * FROM news WHERE MATCH(news_titl
假设搜索输入是“what is”。这将匹配“whatever it is”和“what is”,这是确切的短语。现在,如何在排序中将确切的短语排在第一位? 从昨天开始我就一直在思考这个问题,我一直在想
我正在尝试进行快速文本搜索,以便完全匹配在前,部分匹配在后。 我创建了一个可在 SQLiteStudio 中使用的查询: SELECT value, 1 AS _order FROM glossfts
我的问题的措辞来自博文末尾的评论Android Quick Tip: Using SQLite FTS Tables .正如标题所暗示的那样,该帖子介绍了如何在您的 Android 应用程序中创建和查
我正在使用 SQLite FTS 在文本文章中查找文本: SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux'; 这将返回包含 lin
有没有办法在 SQLite 中创建一个预填充了来自 SELECT 查询的数据的 FTS 表? 我知道可以创建一个用 SELECT 中的数据预填充的常规表:CREATE TABLE foo AS SEL
我是一名优秀的程序员,十分优秀!