- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个像这样的简单模型:
class Book(models.Model):
title = models.TextField()
year = models.IntegerField()
如何在 postgres 中使用 SearchVector
以允许在标题和年份字段上进行搜索?例如。所以“Some Book 2018”会查询标题和年份字段。
如果我尝试这样做:
q = SearchQuery('Some') & SearchQuery('Book') & SearchQuery('2018')
vector = SearchVector('title') + SearchVector('year')
Book.objects.annotate(search=vector).filter(search=q)
然后我就报错了
DataError: invalid input syntax for integer: ""
LINE 1: ...|| to_tsvector(COALESCE("book_book"."year", '') || ' '...
无论如何我也可以搜索整数字段吗?
最佳答案
正如您在错误日志中所读到的,您不能在搜索向量中使用整数,但您可以轻松地 cast将您的整数转换为查询中的字符串。
您可以执行此代码以使用您的Book 模型进行全文搜索:
from django.contrib.postgres.search import SearchQuery, SearchVector
from django.db.models.functions import Cast
from django.db.models import CharField
q = SearchQuery('Some') & SearchQuery('Book') & SearchQuery('2018')
vector = SearchVector('headline') + SearchVector(Cast('rating', CharField()))
Book.objects.annotate(search=vector).filter(search=q)
关于模型 IntegerField 上的 Django SearchVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53539033/
如果我有一个简单的 Django 模型,例如: from model_utils import Choices class Art(models.Model): CATEGORIES = Ch
如果我有一个像这样的简单模型: class Book(models.Model): title = models.TextField() year = models.IntegerFi
我正在尝试在 postgres 的多个列中搜索值列表(通过 django)。我能够使用 SearchQuery 和 SearchVector,如果其中一个搜索值与一个完整的词匹配,这会很好用。我希望使
我正在尝试在 SearchVector 中使用 ArrayField,但它正在返回 django.db.utils.DataError: malformed array literal: "" LIN
我已经在 Django 中安装了 UnaccentExtension,但是我在搜索时遇到了问题: vector = SearchVector('title__unaccent', 'abstract_
我正在尝试使用 Django SearchVectorField 来支持全文搜索。但是,当我在我的模型上使用 SearchVectorField 与在我的 View 中实例化一个 SearchVect
我是一名优秀的程序员,十分优秀!