Django使用搜索向量使用多个单词或部分单词进行搜索

时间:2018-04-22 09:27:40

标签: python django django-queryset

对于搜索,我想使用PostgreSQL中的搜索向量;

我写了一个自定义查询方法:

  def search(self, text):

        search_vectors = (
            SearchVector('name', weight='A', config='english') +
            SearchVector('short_description', weight='B', config='english') +
            SearchVector('description', weight='C', config='english')
        )
        search_query = SearchQuery(text)
        search_rank = SearchRank(search_vectors, search_query, weights=[0.2, 0.4, 0.6, 1])

        return self.annotate(rank=search_rank).filter(rank__gte=0.2).order_by('-rank').

有2个问题'。例如,对于名称' Eric',如果我搜索:

  • '埃里克'我得到了正确的结果
  • ' eric john'我得到不是结果
  • '蓖麻'我得到没有结果

我理解为什么会失败,但我不知道如何实施修复。

0 个答案:

没有答案