模型具有SearchVector字段和CharField内容字段。
class AModel(models.Model):
content = models.CharField(...)
vector = SearchVectorField()
content
字段更改后,vector
字段将通过以下查询进行更新:
AModel.objects.filter(id=xx).update(vector=SearchVector('content'))
如果我获取vector
字段并对其进行查找,则该字段的内容如下所示:
“'2':38'3':32'4':26'5':20'bskl':14,19,25,31,37'ck':2 'clb':13,18,24,30,36'club':4'f':1'fck':11,16,22,28,34 'clb-bskl':10,15,21,27,33'kargo':9'pv':12,17,23,29,35'trt':6 'tsrt':7“
我想在python / django中生成此数据,而无需从数据库读取vector
字段。
我看了SearchVector类,但是我不知道怎么可能。
答案 0 :(得分:1)
我不确定“在运行时”是什么意思,但是如果您指的是使用Django获取搜索向量本身,则必须
from django.db import connection
content = 'hello world'
with connection.cursor() as cursor:
cursor.execute('SELECT * FROM to_tsvector(%s)', [content])
ts_vec = cursor.fetchone()[0]
print(ts_vec)
那会输出
'hello':1 'world':2