gpt4 book ai didi

Android Sqlite FTS 不运行

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:35 25 4
gpt4 key购买 nike

我正在尝试进行快速文本搜索,以便完全匹配在前,部分匹配在后。

我创建了一个可在 SQLiteStudio 中使用的查询:

SELECT value, 1 AS _order FROM glossfts
WHERE glossfts.value MATCH 'dog'
UNION
SELECT value, 2 AS _order FROM glossfts
WHERE glossfts.value MATCH 'dog* NOT dog'
ORDER BY _order

那么结果就是

Beware of dog                                     1
Disliked by everybody, not even a dog will eat 1
Bad dog 1
Creed, dogma 2
Dogs 2
Dogwood 2

这很好,但是当我在 android 中使用相同的查询时,我只得到

Beware of dog                                     1
Disliked by everybody, not even a dog will eat 1
Bad dog 1
Disliked by everybody, not even a dog will eat 2

返回,因为它似乎在解释:

MATCH 'dog* NOT dog'

作为

MATCH 'dog* not dog'

这是怎么回事?

最佳答案

Android FTS 使用标准查询语法,未增强。

因此,它不会将“NOT”或“AND”识别为运算符。它实际上是在尝试将它们与您的数据库列的文本相匹配。这就是为什么在 Android 上,您唯一的匹配来自实际文本中带有“not”的条目。

NOT 必须使用“-”,AND 必须使用空格。因此,您的语法应如下所示:

WHERE glossfts.value MATCH 'dog* -dog'

http://www.sqlite.org/fts3.html

关于Android Sqlite FTS 不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17132597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com