繁体   English   中英

如何在一个 model object 字段上执行 django 全文搜索向量

How to perform django full text searchvector on one model object field

提示:本站收集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>]>
  • 如何查询以提供以下 KEY http://google.com应返回其所有值,即{"Version": "1.0", "Server": "AkamaiGHost"}
问题暂未有回复.您可以查看右边的相关问题.
3 如何在 Django 中执行全文搜索?

例如,我有一个标题How to use User Model in Django ,我只使用关键字django进行搜索,然后它返回所有包含 django 的标题,这很好,但是当我输入像django user model这样的关键字时,它返回 none。我怎么能解决这个 任何帮助,将不胜感激 视图.p ...

5 如何按字段过滤并执行全文搜索?

我有这样的文件: {id:1,标签:“ tagName1”,文本:“ Hello world”} 我需要在带有标签“ tagName1”的文档中执行全文搜索(字段“ text”)。 我只能进行匹配查询或按标签过滤。 我怎么能一起做? ...

6 Django/PostgreSQL 全文搜索 - 在 AWS RDS PostgreSQL 上使用 SearchVector 与 SearchVectorField 时的不同搜索结果

我正在尝试使用 Django SearchVectorField来支持全文搜索。 但是,当我在我的模型上使用SearchVectorField与在我的视图中实例化SearchVector类时,我得到了不同的搜索结果。 该问题与 AWS RDS PostgreSQL 实例隔离。 两者在我的笔记本电脑上 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM