Django:如何在 Postgresql 中对日语(多字节字符串)进行全文搜索

Posted

技术标签:

【中文标题】Django:如何在 Postgresql 中对日语(多字节字符串)进行全文搜索【英文标题】:Django: How to do full-text search for Japanese (multibyte strings) in Postgresql 【发布时间】:2021-12-16 17:14:56 【问题描述】:

可以使用 SearchVector 创建用于搜索的索引,但是 但是,日文单词没有空格分隔,全文检索无法正常工作。 如何在日文(多字节字符串)中进行全文搜索?

我想过实现一个搜索引擎,例如 ElasticSearch,但出现了其他问题。 如果可能的话,我想用 Postgres 做 FTS。

# models.py
class Post(models.Model):
    title = models.CharField(max_length=300)
    search = SearchVectorField(null=True)

    class Meta:
        indexes = [GinIndex(fields=["search"])]

# update search column
Post.objects.update(search=SearchVector('title'))

【问题讨论】:

【参考方案1】:

查看Pgroonga Postgres 扩展以进行所有语言的全文搜索。 Zulip 项目使用它并取得了惊人的效果。

【讨论】:

以上是关于Django:如何在 Postgresql 中对日语(多字节字符串)进行全文搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何在 postgresql 中对 json 类型使用唯一约束

如何在 Postgresql 中对 JSONB 数组中的值求和?

如何在 Postgresql 中对总和进行排名?

如何在 django 中对文件上传进行单元测试

如何在 Django 中使用 PostgreSQL 9.2 JSON 数据类型?

如何在 Pandas/Numpy 中使用 dateOffset 对日内时间序列数据进行重新采样?