Django Haystack 对同一模型的多个字段进行索引

2024-04-15

我正在尝试使用以下命令将 elasticsearch 嵌入到我的 Django 应用程序中django-haystack。我正在尝试实现用户搜索。我的用户模型是这样的:

class MyUser(AbstractBaseUser):
    username = models.CharField(max_length=255, unique=True)
    name = models.CharField(max_length=63, blank=True)
    email = models.EmailField(blank=True, unique=True)
    status = models.CharField(max_length=255, blank=True, null=True)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    joined = models.DateTimeField(auto_now_add=True, null=True)

现在,我想搜索name and username字段。我创建了以下内容search_indexes.py:

class UserIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.EdgeNgramField(document=True, model_attr='name')
    username = indexes.CharField(model_attr='username')

    def get_model(self):
        return MyUser

    def get_updated_field(self):
        return "joined"

但是,当我执行搜索时,我只得到与name场地。我在这里做错了什么?还有其他方法可以做到这一点吗?

提前致谢。


django-haystack 的工作方式,里面的数据document=True字段用于一般搜索,任何其他字段用于单独过滤。因此,在您的情况下,搜索将仅使用name场地。要解决此问题,您需要使用一个模板来指定搜索中要使用的所有字段。首先,使用:

text = indexes.EdgeNgramField(document=True, use_template=True)

然后,您需要在模板目录中创建一个名为的新模板search/indexes/myapp/myuser_text.txt并将以下内容放入其中:

{{ object.username }}
{{ object.name }}

See http://django-haystack.readthedocs.org/en/latest/tutorial.html#handling-data http://django-haystack.readthedocs.org/en/latest/tutorial.html#handling-data供完整参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django Haystack 对同一模型的多个字段进行索引 的相关文章

随机推荐

  • Hibernate/JPA中涉及继承时如何指定列名?

    我想我想在这里鱼和熊掌兼得 但我们会看看是否有一个合理的解决方案来满足我正在寻找的问题 我有一个 Spring Boot JPA Hibernate 应用程序 它将与 MySQL 作为其后备存储进行通信 我有几种情况 从 OOP 的角度来看
  • 带有问号的奇怪 C# 语法

    private enum E Week Mon 0 Tue 下面的代码是什么意思 E Week week null 是否等于下面的代码 的作用是什么 在这里签名 E Week week null 您的代码正在使用所谓的可空类型 http m
  • 在Python中查找模块的路径而不导入

    我见过几种通过首先导入模块来查找模块路径的方法 有没有办法在不导入模块的情况下做到这一点 Using pkgutil http docs python org library pkgutil html module gt gt gt imp
  • Java字符串内部表示

    我知道Java对String的内部表示是UTF 16 什么是java字符串表示 https stackoverflow com questions 9699071 what is the javas internal representio
  • 如何在 ng-template 中使用反应式表单

    我刚刚开始使用 Angular 4 我需要开发一个 CRUD 网格 用户可以在其中添加 编辑或删除行 在我的研究过程中 我发现这篇文章展示了如何创建网格以及操作 具有 CRUD 操作的 Angular 4 Grid http www dot
  • Angularjs $state 在新选项卡中打开链接

    我正在尝试使用 state go 函数实现 在新选项卡中打开链接 功能 如果有这样的东西那就太棒了 state go routeHere parameter1 parameter reload true newtab true or smt
  • Ansible Expect 模块无法匹配字符串/正则表达式脚本问题

    我正在尝试通过 Ansible 在 Vagrant 机器中自动安装脚本 我尝试了很多方法在网络上寻找解决方案 但文档和示例非常薄弱 我试图安装的脚本提示了我试图以编程方式回答的问题Ansible 期望模块 Ansible 任务 名称 运行
  • Apache Ignite - 执行器中的池大小

    我正在尝试使用基于集群的执行器服务 获取启用集群的执行器服务 ExecutorService exec ignite executorService 有没有办法设置执行程序服务池中的线程数 希望作业将以循环方式在集群中的每个节点中执行 Th
  • python 请求特定 SNI 证书的“证书验证失败”

    多年来我一直在几乎所有项目中使用 python requests 框架 但还没有遇到过这样的问题 这只发生在网站上www pagedna com据我所知 要重现的代码示例非常简单 import requests requests get h
  • 如何将行添加到数据框中仅修改某些列

    为了准备用于绘图的数据 我需要向数据添加一个新行 我有这个数据框 df lt data frame test id c 1 1 1 1 test nr c 1 1 1 1 region c A B C D test value c 3 1
  • 使用两个数据库的单个 Django 应用程序

    如何在 Django 中配置托管在两个不同数据库中的模型 到目前为止 我已经在出色的 Django 环境中设置了 3 个数据库 我的一个应用程序使用Router https docs djangoproject com en dev top
  • Cordova 签名的 apk 在闪屏后产生空白屏幕

    Cordova 调试构建工作正常 但是签名 apk 在闪屏后会出现白屏 已经尝试创建新应用程序并使用发布密钥进行签名 但签名的 apk 也有同样的问题 cordova version 7 1 0 cordova platform andro
  • 我想要动态加载到入口点的 Webpack 捆绑模块

    下面的代码似乎使用动态导入 https webpack js org guides code splitting dynamic imports function executeApplication void const loadData
  • 在 NSView 中重复背景图像

    我正在尝试在 NSView 中绘制重复的背景图像 到目前为止我已经有了 INIT id initWithFrame NSRect frame if self super initWithFrame frame self background
  • 如何使用 JavaScript 打印数组中的元素

    我有一个包含元素的数组 例如 array example1 example2 example3 如何按以下格式打印 示例 1 2 示例 2 3 示例 3 Use forEach为此 如下所示 var a a b c a forEach fu
  • NSDate 和 NSDateFormatter 问题

    我有点难以理解为什么以下代码会导致我的应用程序崩溃 NSDateFormatter dateFormatter NSDateFormatter alloc init dateFormatter setDateFormat MMMM d yy
  • 使用毕加索下载图像会在缓存中创建不正确的图像,可能修复吗?

    我有一个带有图像的领域数据库URLs 我需要将这些图像下载到ExternalCacheDir 现在这里有problem 假设我有三张图片 ar11 jpg ar12 jpg ar13 jpg 执行我的代码后 我会在缓存目录中获得 3 个 j
  • 如何向 UISearchBar 添加按钮

    我需要像上图一样实现 如何向 UI 搜索栏添加按钮 适用于 iPhone 请帮帮我 提前致谢 为此 您需要创建一个类 MyScearchBar 其父类是 UISearchBar 我那个班 void layoutSubviews self a
  • spring-data-jpa 和 querydsl 的 Maven 构建问题

    我有一个用于 spring data jpa 和 QueryDsl 的 Eclipse Maven 项目 我似乎对 maven apt plugin 有问题 如果我执行 mvn clean 然后执行 mvn install 它会尝试 处理
  • Django Haystack 对同一模型的多个字段进行索引

    我正在尝试使用以下命令将 elasticsearch 嵌入到我的 Django 应用程序中django haystack 我正在尝试实现用户搜索 我的用户模型是这样的 class MyUser AbstractBaseUser userna