我正在尝试从电晕应用内部对sqlite数据库运行“匹配”查询。我使用cl.exe从源文件编译了sqlite数据库,当我编译时,我包含了启用fts功能的标志。然后我使用fts3在数据库中创建了一个虚拟表(我也尝试与fts4分开)。我能够从sqlite命令行实用程序运行“匹配”查询,并返回正确的结果。
然而,当我从我的电晕应用程序对同一个数据库文件尝试相同的查询时,我得到错误“没有这样的模块:fts3”(当我尝试使用fts4时,我得到“没有这样的模块:fts4”)。其他查询(不使用全文搜索)在日冕中工作正常。
有谁可以告诉我为什么我的电晕应用程序中的全文搜索会出现此错误? sqlite文档暗示此错误意味着sqlite构建不包含FTS模块。但我认为我正确编译它是因为我创建FTS3表的SQL语句成功(在电晕之外)并且全文查询也在电晕之外工作。
我是否需要在日冕构建设置中设置不同的东西?
我在Windows上使用电晕模拟器,但我也在我的设备上试过它。
以下是来自我的设备的adb logcat的输出:
I/Corona (15353): Runtime error
I/Corona (15353): no such module: fts3
I/Corona (15353): stack traceback:
I/Corona (15353): [C]: ?
I/Corona (15353): [C]: in function 'nrows'
I/Corona (15353): ...t\Documents\Corona Projects\aw\scene_search.lua:162: in function 'fillMyTable'
I/Corona (15353): ...t\Documents\Corona Projects\aw\scene_search.lua:56: in function <...t\Documents\Corona Projects\aw\scene_search.lua:49>
I/Corona (15353): ?: in function <?:218>
答案 0 :(得分:0)
我也在电晕论坛上发布了这个问题,电晕工作人员证实他们使用Android的标准版本的sqlite,它不包括对全文搜索的支持。 iOS上的标准版本确实包括对fts的支持,因此它适用于iOS 看到: http://forums.coronalabs.com/topic/55683-is-coronas-sqlite-compiled-with-fts3-full-text-search-enabled/