gpt4 book ai didi

mysql - Django MySQL 全文搜索

转载 作者:IT老高 更新时间:2023-10-28 23:52:20 27 4
gpt4 key购买 nike

我需要为我的 Django 应用程序实现全文搜索,运行 MySQL 作为后端。

假设我有一个模型如下:

class MyItem(models.Model):
title = models.CharField()
short_description = models.TextField()
description = models.TextField()

我希望首先获得标题中搜索词出现的结果,然后是 short_description 中的结果,最后是描述字段中的结果。如果我不必为此任务使用额外的模块/应用程序,我会更开心。

最佳答案

previously highest rated answer已弃用。从 Django 1.10 开始,不再有 MySQL 数据库的 search 字段查找(请参阅 search section in the 1.10 documentation)。

release notes for 1.10还通过定义自定义查找提出了解决方案:

###__search query lookup

The search lookup, which supports MySQL only and is extremely limited infeatures, is deprecated. Replace it with a custom lookup:

from django.db import models

class Search(models.Lookup):
lookup_name = 'search'

def as_mysql(self, compiler, connection):
lhs, lhs_params = self.process_lhs(compiler, connection)
rhs, rhs_params = self.process_rhs(compiler, connection)
params = lhs_params + rhs_params
return 'MATCH (%s) AGAINST (%s IN BOOLEAN MODE)' % (lhs, rhs), params

models.CharField.register_lookup(Search)
models.TextField.register_lookup(Search)

关于mysql - Django MySQL 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com