Django: Как сделать полнотекстовый поиск по японскому языку (многобайтовые строки) в Postgresql

Можно создать индекс для поиска с помощью SearchVector, но Однако японские слова не разделяются пробелами, и полнотекстовый поиск не работает должным образом. Как можно выполнить полнотекстовый поиск на японском языке (многобайтовые строки символов)?

Я думал реализовать поисковую систему, например ElasticSearch, но возникли другие проблемы. Если возможно, я хотел бы сделать FTS с Postgres.

# 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'))

Посмотрите на расширение Postgres Pgroonga для полнотекстового поиска на всех языках. Оно используется в проекте Zulip с потрясающими результатами.

Вернуться на верх