Django Postgres Array Field - Подсчитать количество совпадений? - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть Article модель, которая содержит поле keywords, представляющее собой ArrayField списка ключевых слов в отсортированном порядке возрастания. Я хочу сделать запрос, который находит все статьи с минимальным количеством ключевых слов, перекрывающихся.

Пример:

article_a = Article(keywords=["tag1", "tag2", "tag3"]
article_b = Article(keywords=["tag1", "tag2", ]
article_c = Article(keywords=["tag1", ]

article_a.find_similar_articles(min_overlap=2)
  # Returns [article_b, ] since it overlaps with at least 2 elements.

Здесь есть аналогичный вопрос , который предназначен для обычных Postgres, а не для Django ORM.

Кто-нибудь знает, как я могу запросить поле массива таким образом? Или, может быть, у вас есть предложение другого способа достижения того же результата путем структурирования данных другим способом?

...