我在攻读硕士学位期间就有了一些信息检索方面的背景知识。现在我想用它来为一本用阿拉伯语写的书构建一个文档搜索应用程序。
我的主要工具是 Django 和 PostgreSQL 或 MySQL,具体取决于此处发布的建议。
我在美国使用 Django 进行了 5 年的开发,但从未需要国际化或任何 Unicode 支持。所以我的问题是,我该如何处理阿拉伯语单词。
这是我的过程:
1) 我有几个 .html 文件,其中包含几行阿拉伯语单词。我将构建一个解析器/分词器/词干分析器并存储到数据库
2) 当用户输入搜索词时,我会截取它,并将其与我的数据库进行比较。
我需要帮助的是:
1) 词干/单词/行应该作为阿拉伯语单词还是作为 python unicode 字符串存储在数据库中
2) 如果我要将它们存储为阿拉伯语单词,PostgreSQL 或 MySQL 哪个更好,我如何在两者中支持阿拉伯语。
3) 如果我将它们存储为 unicode 字符串,django 管理员会将它们显示为阿拉伯语单词。因为如果是这样,那可能就足够了。另外,管理员可以支持阿拉伯语吗? IE。如果我想更改数据库中的某些内容,是否可以通过管理员完成。
4) 如何让 Django ORM 支持存储解析器将吐出的阿拉伯语单词?
请您参考如下方法:
在过去的 2 年里,我一直在使用 Django,并且在我的应用程序中经常使用希伯来语文本(无论是在 html 上还是在服务器端)。我发现 Django 在国际化和使用 unicode 方面非常出色(坦率地说,比 Python 更出色)。
只需遵循以下几个提示,您可能就没事了:
对于您应用中包含外来字符的每个 .py 文件,确保在文件顶部添加一个 utf-8 bash:
# encoding=utf-8当使用带有阿拉伯字符的字符串时,一定要在字符串前添加一点 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当您第一次创建数据库时,确保使用正确的 utf-8 保存它(
Database Chartset = utf8和Database Collation = utf8_general_ci应该没问题)。确保所有呈现阿拉伯语的页面在您的 html 中都有此元标记(最好在 base.html 文件的 head 标记内执行此操作并使所有模板继承它):
<meta charset='utf-8'>
通常应该是这样。是啊,我知道,通常外国角色很头疼,对吧?不适用于 Django。
