1

从我的硕士学位日起,我就有一些信息检索方面的背景。现在我想用它来为一本用阿拉伯语写的书构建一个文档搜索应用程序。

我的主要工具是 Django 和 PostgreSQL 或 MySQL,具体取决于此处发布的建议。

我在美国使用 Django 开发了 5 年,但从来不需要国际化或任何 Unicode 支持。所以我的问题是,我如何处理阿拉伯语单词。

这是我的过程:

1) 我有几个 .html 文件,其中 's 有几行阿拉伯语单词。我将构建一个解析器/标记器/词干分析器并存储到数据库

2)当用户输入一个词进行搜索时,我会阻止它,并将它与我的数据库进行比较。

我需要帮助的是以下内容:

1) 词干/单词/行应该作为阿拉伯语单词还是 python unicode 字符串存储在数据库中

2)如果我要将它们存储为阿拉伯语单词,那么最好是 PostgreSQL 还是 MySQL,以及我如何支持阿拉伯语。

3)如果我将它们存储为 unicode 字符串,django 管理员会将它们显示为阿拉伯语单词。因为如果是这样,那可能就足够了。另外,管理员可以支持阿拉伯语吗?即如果我想更改数据库中的某些内容,可以通过管理员来完成。

4) 如何让 Django ORM 支持存储解析器会吐出的阿拉伯语单词?

4

1 回答 1

7

在过去的 2 年里,我一直在使用 Django,并且经常在我的应用程序中使用希伯来语文本(无论是在 html 还是在服务器端)。我发现 Django 在国际化和使用 unicode 方面非常出色(坦率地说,比 python 更重要)。

只需遵循以下几个提示,您可能会没事的:

  1. 对于应用程序中包含外来字符的每个 .py 文件,请确保在文件顶部添加 utf-8 bash:# encoding=utf-8

  2. 使用带有阿拉伯字符的字符串时,请务必在字符串前添加一点 u。确保您始终牢记这一点。每当您使用字符串时:

    u'some arabic word' #this will work
    u'%s' % word #this will work
    'some string' + u'some arabic string' #this will fail        
    u'some string' + u'some arabic string' #this will work
    
  3. 当您第一次创建数据库时,请确保使用正确的 utf-8 保存它(Database Chartset = utf8并且Database Collation = utf8_general_ci应该证明没问题)。

  4. 确保所有呈现阿拉伯语的页面在您的 html 中都有此元标记(最好在 base.html 文件的 head 标记内执行此操作并让所有模板继承它):<meta charset='utf-8'>

通常应该是这样。是的,我知道,通常外国字符很头疼,对吧?没有 Django。

于 2013-11-03T13:15:00.113 回答