如果我有一个简单的Django模型,例如: 如何在postgres中使用SearchVector允许同时在标题和类别字段中进行搜索? 例如,“ Some Book Digital Art”将同时查询标题和类别字段。 问题在于,在数据库级别,选择字段存储为整数,而不是文本。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有以下 model 具有response_results
json 字段,其中包含 json 对象的大型数据集:
我的 model Response_Grab
只有一个 id 为8
的 object,我在一个 object 中拥有强大的所有数据,
from django.contrib.postgres.fields import JSONField,ArrayField
from django.contrib.postgres.search import SearchVectorField
class Response_Grab(models.Model):
response_domains = ArrayField(models.TextField(blank=True),blank=True,null=True,default=list)
response_results = JSONField(blank=True,null=True,default=dict)
response_grab_interval = models.IntegerField(default=48)
search_vector = SearchVectorField(null=True)
response_results
jsonfield 格式示例:{
"http://google.com": {"Version": "1.0", "Server": "AkamaiGHost"},
"https://facebook.com":{"Version":"1.0","Server":"Apache"},
...
...
}
>> from elasticapp.models import Response_Grab as rg
>> from django.db.models import TextField
>> from django.db.models.functions import Cast ### TO Convert JSON to Text
>> rg.objects.annotate(search=SearchVector(Cast('response_results',TextField())),).filter(search='http://google.com')
<QuerySet [<Response_Grab: default>]>
http://google.com
应返回其所有值,即{"Version": "1.0", "Server": "AkamaiGHost"}
?声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.