搜索Sqlite全文搜索阿拉伯语没有变音符号

时间:2014-01-10 21:52:22

标签: android sqlite arabic diacritics fts4

我有一个带有FTS4搜索功能的sqlite数据库。它有很多带有变音符号的阿拉伯语文本,这对于查看和阅读非常重要,但对搜索不重要。

我希望搜索变音符号是不可知的,但它似乎只能找到与我输入匹配的匹配项,而忽略了所有甚至只有一个变音符号的内容。

如何阻止它这样做。我知道自定义sqlite函数在android中是不行的,而且tokenizer非常有限。

2 个答案:

答案 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 '%طائفة%'