Android 全文搜索和 ListAdapter
我已经有一个使用 SQLite 数据库和列表适配器的应用程序。我正在尝试更新我的应用程序以使用全文搜索功能,但正在努力寻找问题的答案。基本上,当我使用必要的 _id 列创建虚拟表时,数据库会将其转换为文本字段,并且它不再是自动增量主键。我如何通过列表适配器使用 FTS3 功能?
I already have an application that uses the SQLite database and a listadapter. I am trying to update my application to use the Full Text Search capabilities but am struggling to find an answer to a problem. Basically when I create the virtual table with the necessary _id column, the database converts it to a text field and it is no longer an autoincrement primary key. How would I go about using the FTS3 capabilities with a listadapter?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 FTS3 sqlite 时会忽略数据类型和约束。因此所有列都被创建为文本。它创建一个 docid(也称为 rowid)来代替 _ID 列。为了让适配器能够很好地使用这个 id,您必须将其别名为 _id。
检查 Sqlite FTS 文档的第 1.2 节。
http://www.sqlite.org/fts3.html
另请在 SearchableDictionary 中查找示例的别名。
When using FTS3 sqlite ignores datatypes and constraints. So all columns get created as text. In place of the _ID column, it creates a docid also known as a rowid. In order to get the adapters to play nice with this id, you have to alias it to _id.
Check section 1.2 of the Sqlite FTS docs.
http://www.sqlite.org/fts3.html
Also look in the SearchableDictionary for a sample of an alias.