django - django-elasticsearch-dsl 无法过滤多个模型字段
问题描述
模型.py
class PostJob(models.Model):
job_title = models.CharField(max_length=256)
job_description = models.TextField()
key_skills = models.TextField()
def __str__(self):
return self.job_title
文件.py
from django_elasticsearch_dsl import DocType, Index
from .models import PostJob
jobs = Index('jobs')
@jobs.doc_type
class JobsDocument(DocType):
class Meta:
model = PostJob
fields = [
'job_title',
'job_description',
'key_skills',
]
视图.py
from .documents import JobsDocument
def search_jobs(request):
q = request.GET.get('q')
if q is None:
return JsonResponse({"code":500,"msg":"query sting not found"})
if q:
Q = JobsDocument.search().query
jobs = Q("match", key_skills=q) or Q("match", job_title=q)
lst=[]
dict ={}
for i in jobs:
dict["job_title"] = i.job_title
dict["description"] = i.job_description
dict["key_skills"] = i.key_skills
lst.append(dict.copy())
return JsonResponse(lst,safe=False)
在使用 'django-elasticsearch-dsl' 的 django 中,我正在尝试使用多个模型字段进行搜索。
在这里,我想使用带有key_skills和job_title的多个字段进行过滤, 但它仅带有 key_skills但与job_description不匹配
对于job_title,如果我的job_title工作是python 开发人员,如果我只搜索开发人员,它就不会出现。当我用空白完全搜索python开发人员时,它就来了
请看看它..
解决方案
推荐阅读
- android - Android:Google Play 是否具有相当于 iOS SKStoreProductViewController 的功能,以便在我的应用中显示 GPlay 商店?
- android - 在android中为recyclerview水平添加行数据
- python - 使用 Pytorch JIT 修改跟踪模型
- excel - 有没有办法在 Excel 中“全选”应用名称?
- java - Android包含布局:使用数据绑定传递Drawable参数给出错误:AAPT:错误:找不到属性mysrc(又名com.example.APPNAME:mysrc)
- java - 如何从 Android Studio 中的运行时创建的文件中读取
- python - Python 脚本在直接运行但不能通过 cron 作业运行时有效
- r - 检查数据框中的值是否存在,如果该值存在或不存在,则创建一个值为 0/1 的新数据框
- python - 修改/创建 Spyder 键盘快捷键 `%clear` 和 `%reset`
- r - R中的参数图