#django #postgresql #full-text-search
Вопрос:
Можно создать индекс для поиска с помощью 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'))
Ответ №1:
Посмотрите на расширение Pgroonga Postgres для полнотекстового поиска на всех языках. Он используется проектом Zulip с потрясающими результатами.