我有一个带有FTS4搜索功能的sqlite数据库。它有很多带有变音符号的阿拉伯语文本,这对于查看和阅读非常重要,但对搜索不重要。
我希望搜索变音符号是不可知的,但它似乎只能找到与我输入匹配的匹配项,而忽略了所有甚至只有一个变音符号的内容。
如何阻止它这样做。我知道自定义sqlite函数在android中是不行的,而且tokenizer非常有限。
答案 0 :(得分:0)
根据我的经验,最短的解决方案是存储两种形式的阿拉伯字符串,使用变音符号进行显示,不使用变音符号进行搜索。因此,您可以使用简单的数据库搜索功能。
仅当您的应用程序使用某种高级搜索引擎时,您才能实现阿拉伯语变音符stemming功能来过滤此类变音符号。 (有些已经有这样的功能)
搜索引擎在编制索引时使用词干功能。
答案 1 :(得分:-2)
这个例子
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 '%طائفة%'