问题标签 [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.
sql - 带有 FTS4 表的 sqlite3:查询返回错误的行
我在 SQLite3 中的 FTS4 索引有一个奇怪的问题,即MATCH
对一个术语的查询返回的不是完全匹配,而是另一个相似的匹配,反之亦然。
这是一个更好地说明它的例子:
它似乎与破折号有关,这是一个类似的案例,表现出相同的行为:
这是这个测试数据库的构建方式,以防有人想尝试复制它:
sqlite - 如何增加 Sqlite FTS4 片段大小
您好我正在使用 sqlite 对许多文档进行全文搜索。虽然我已经让它基本上工作了,但我非常想增加/扩展片段中返回的文本量,有没有办法增加片段()返回的文本的大小和数量。我使用 FTS4 创建了我的 fts 表,我在 Windows 7 上运行 python 2.7
android - Sqlite fts4 搜索 html 编码字符
我正在编写一个字典项目。它可以将英语翻译成阿拉伯语或将阿拉伯语翻译成英语。单词存储在 sqlite fts4 数据库中。数据库中存储的 html 中的阿拉伯字母编码如下
当我使用英语到阿拉伯语的 fts4 查询语法时,例如 => stor
返回的结果对我有好处
但是当我在阿拉伯语到英语中搜索 => غير
返回结果
但我想看到结果只从我搜索的 html 编码文本开始,比如
如您所见,我在单词的开头使用“^”来获得此结果。英语到阿拉伯语工作正常,但阿拉伯语到英语不能正常工作。
android - 针对亚洲文本的 Android SQLite 全文搜索的变通方法
我读过很多帖子询问是否可以在 Android 中完成基于 SQLite 的全文搜索,所有答案都指出 Android 的内置 SQLite 不允许自定义标记器。默认分词器考虑用空格或其他符号分隔的单词,但亚洲词(如中文)需要其特殊的分词器,但 Android 不允许添加自定义分词器。
我读的帖子是几年前的。最近的 Android 版本有更新吗?我只是搜索并没有找到答案。
我正在考虑一种解决方法。在我将元组插入到 FTS3/FTS4 虚拟表中进行索引之前,是否可以人为地在每个单词之间添加空格,以便默认的分词器可以将每个亚洲“单词”视为英语单词?在进行查询时,查询字符串也是如此,即添加了人工空格。
我在Linux中尝试过,看起来它可以工作。例如,如果我这样做,则亚洲文本的全文搜索是可以的:
但一个疑问是,它是否会为数据库文件花费更多的存储空间,因为空格中有双倍的字符。看起来所谓的“虚拟表”不仅存储了生成的索引,还存储了原始文本。
sql - 对 SQLite 表和虚拟表的困惑
我目前正在为 Android 环境开发一个笔记本应用程序,但是我被困在如何处理 SQL 搜索界面上。通过研究,我发现最有效的方法是使用“全文搜索”模块(FTS4)。
我坚持的是我必须处理这个问题的方式。我一定要吗:
- 创建一个 Note Table 和一个 Virtual Table 并使用一个简单的 Trigger 逻辑插入到这两个表中。
或者
- 我是否只创建一个虚拟表并在其中维护注释列表。
database - 在 Sqlite 中创建动态 FTS4 表
我一直致力于通过使用视图使我的 sqlite DB 更具动态性。除了全文搜索表之外,这在所有情况下都有帮助。根据 SQLite FTS4 文档 ( https://www.sqlite.org/fts3.html#section_6_2_2 ),在创建全文搜索虚拟表时,有一种方法可以引用表作为内容表。不幸的是,用户仍然负责填充和维护虚拟表,这没有多大意义,但它就是这样。
我最初填充 fts4 表并让它工作的方式是这样的:
创建虚拟表 term_search 使用 fts4(id,name,origin,content,refs, created);
INSERT INTO term_search SELECT id,name,origin,text,refs,created FROM full_text_dict;
这最初运作良好,但不是动态的。
我试图像这样创建“外部内容”fts4 表:
使用 fts4 创建虚拟表 term_search (content="full_text_dict",name, origin,content,refs,created);
INSERT INTO term_search (docid,name,origin,content,refs,created) SELECT id,name,origin,text,refs,created FROM full_text_dict;
SQLite 允许我这样做,但是当我尝试像这样查询表时,我得到:
SELECT * FROM term_search WHERE 内容匹配“数据”;
错误:SQL 逻辑错误或缺少数据库
当我尝试运行完整性检查命令时,我得到了同样的错误:
插入到 term_search(term_search) VALUES('integrity-check');
我觉得我遗漏了一些东西,但无法从文档中确定它是什么。有任何想法吗?提前致谢。
编辑:我应该提到我正在使用的内容表是一个视图。据说它应该仍然可以工作,但我想知道它是否可能是一个错误。
sqlite - SQLite、文本搜索 FTS 等
我正在使用 SQLite3 对一些旧的 D5 业务(朋友免费赠品)进行一些更新和修复,所以必须使用 Zeos 6.6
我想加快当前使用两个 BLOB_TEXT 字段“类”和“方法”的文本搜索
谁能指出一些使用 SQLite FTS 扩展的代码或比上面更快的代码?
我发现了这一点,但由于太多原因无法在此处定义。我确信它可以正常工作,因为 Žarko Gajić 的东西总是在现场,但只是不工作这个安装。:) http://zarko-gajic.iz.hr/full-text-txt- ... g-project/
只需在此处找到此链接... SQLite 中的 BLOB 数据类型是否支持全文搜索?
这可以解释为什么似乎没有任何效果,BLOB_TEXT 被忽略了?是的?不?
有什么片段可以加快这个文本搜索的速度吗?
ios - 如何将 SQLite3 创建的函数添加到 iOS 9 项目?
我正在尝试为带有 Swift 2.2 的 iOS 9/Xcode 7 项目构建一个简单的 SQLite 全文搜索 (FTS4)。我正在使用 Swift 直接访问 SQLite3 C API,我认为不需要使用臃肿的包装库。我的全文搜索工作完美。现在我需要为结果创建一个排名函数。我已经有了排名功能的 C 代码,问题是我不知道如何:
- 将排名功能代码的C源或编译后的可执行文件获取到编译好的iOS工程中。
- 在 SQLite 中创建或加载排名函数 (sqlite3_create_function)
- 让 SQLite 识别创建的函数
所以基本上,我有排名函数的 C 源代码,并且每次尝试让 SQLite 识别该函数都失败了。
谢谢你的帮助。
android - 如何在android上查询fts表
我正在为安卓开发。我正在使用参考http://sqlite.org/fts3.html。我创建了一个 fts 表作为
COLUMN_DOG_ID 实际上是文本。它是一个字符串,而不是一个数字。在任何情况下,我都会创建表,然后向其中添加数据;似乎没有任何麻烦。但是当我尝试查询时,我总是遇到死胡同:我得到了异常。这是查询
错误
sqlite - SQLite:在启用 FTS4 的表中使用比较运算符进行查询
SQLite 版本:3.12.2
使用这个表达式,我创建了一个表来使用快速文本查询的可能性:
注1:为栏目WordsNo
字数;Sentence
然后,我用我的数据(约 500,000 行)填充了我的表,据我所知,因为我使用了FTS4
,所以我只能使用match
函数来检查列的内容(如果我错了,请纠正我)。
我想要做的是用两个条件查询数据:
WordsNo
column的值等于或大于例如 10的所有行;- 列的值
Sentence
具有例如“book”的所有行。
我尝试使用的是:
但正如我之前所说,比较运算符不起作用。
实现这一目标的正确方法是什么?