我有一个带有 FTS4 搜索功能的 sqlite 数据库。它有很多带有变音符号的阿拉伯语文本,这对于查看和可读性很重要,但对于搜索不重要。
我希望搜索与变音符号无关,但它似乎只能在我键入它们时找到完全匹配的匹配项,并忽略所有甚至具有单个变音符号的内容。
我如何防止它这样做。我知道自定义 sqlite 函数在 android 中是不行的,并且标记器非常有限。
我有一个带有 FTS4 搜索功能的 sqlite 数据库。它有很多带有变音符号的阿拉伯语文本,这对于查看和可读性很重要,但对于搜索不重要。
我希望搜索与变音符号无关,但它似乎只能在我键入它们时找到完全匹配的匹配项,并忽略所有甚至具有单个变音符号的内容。
我如何防止它这样做。我知道自定义 sqlite 函数在 android 中是不行的,并且标记器非常有限。
以我的经验,最短的解决方案是存储两种形式的阿拉伯字符串,使用变音符号进行显示,不使用变音符号进行搜索。因此,您可以使用简单的数据库搜索功能。
只有当您的应用程序使用某种高级搜索引擎时,您才能实现阿拉伯语变音符号词干提取功能来过滤此类变音符号。(有些已经有这样的功能)
搜索引擎在索引时使用词干提取功能。
这是一个例子
SELECT field
from myTable
where replace (replace(replace (replace(replace(replace(replace(replace(
field
,char(1612) ,"") ,char(1611) ,""),char(1614) ,""),char(1615) ,""),char(1616) ,""),char(1617) ,""),char(1618) ,""),char(1648) ,"")
like '%طائفة%'