使用 icontains 的 Django SearchVector [英] Django SearchVector using icontains

查看:52
本文介绍了使用 icontains 的 Django SearchVector的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 postgres 的多列中搜索值列表(通过 django).我能够使用 SearchQuery 和 SearchVector,如果其中一个搜索值匹配一个完整的词,这会很好用.我希望使用 icontains 以便在搜索中也可以使用部分字符串.这可能吗,如果可以的话,有人可以指出我正确的方向.下面是我的方法的一个例子.

I am trying to search for a list of values in multiple columns in postgres (via django). I was able to use SearchQuery and SearchVector and this works great if one of the search values matches a full word. I was hoping to use icontains so that partial strings could also be used in the search. Is this possible and if so could someone point me in the right direction. Here is an example of my approach below.

示例数据:

Superhero.objects.create(superhero='Batman', publisher='DC Comics', alter_ego="Bruce Wayne")
Superhero.objects.create(superhero='Hulk', publisher='Marvel Comics', alter_ego="Bruce Banner")

Django 过滤器:

Django filter:

from django.contrib.postgres.search import SearchQuery, SearchVector

    query = SearchQuery('man') | SearchQuery('Bruce') 
    vector = SearchVector('superhero', 'alter_ego', 'publisher')
    self.queryset = self.queryset.annotate(search=vector).filter(search=query)

这将返回 Hulk 记录,但我希望我能以某种方式使用像 'icontains' 这样在搜索 'man' 时也将返回 Batman 记录.任何帮助表示赞赏!

This would return the Hulk record but I am hoping I can somehow use like 'icontains' so that when searching for 'man' the Batman record would also be returned. Any help is appreciated!

推荐答案

因此 SearchQuery 和 SearchVector 是 Django 全文搜索功能的一部分,看起来您无法使用这些功能实现我想要做的事情.感谢 Julian Phalip 在这里的方法,我采取了不同的方法.. https://www.julienphalip.com/blog/adding-search-to-a-django-site-in-a-snap/

So SearchQuery and SearchVector are a part of Django's Full Text searching functionality and it doesnt look like you can achieve what I was wanting to do with these functions. I have taken a different approach thanks to Julian Phalip's approach here.. https://www.julienphalip.com/blog/adding-search-to-a-django-site-in-a-snap/

这篇关于使用 icontains 的 Django SearchVector的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆