当前位置: 首页 > 知识库问答 >
问题:

Django haystack:使用多个模型创建搜索索引

裘臻
2023-03-14

我开始了Django-haystack和弹性搜索的实验。

使用:

django-haystack==2.4.0
elasticsearch==1.6.0

models.py

class Skill(models.Model):
    name = models.CharField(max_length=100)

class City(models.Model):
    name = models.CharField(max_length=100)

我想为上述模型创建一个搜索索引:

class multiIndex(indexes.SearchIndex, indexes.Indexable):
    #other code
    def get_model(self):
        return (Skill, City)

是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。

注:两种型号完全独立。

共有1个答案

嵇财
2023-03-14

不能为多个模型创建一个SearchIndex;你不该这么做。如果你的模型相似,你可以使用一些继承(但我认为这是一项技能)

你是为了创建技能索引

你可以一起搜索它们;我想这就是你想做的,不是吗?

 类似资料:
  • 问题内容: 我正在尝试在站点中创建搜索功能,并且希望用户能够搜索多个单词,并根据各种模型中存在的条件执行子字符串匹配。 为了这个示例,假设我有以下模型: 员工 公司 市政府 县 一个县有多个直辖市,有多个公司,有多个员工。 我希望搜索能够针对Employee.firstname,Employee.lastname,Company.name,Municipality.name和County.name

  • 问题内容: 我创建了这个功能: 该函数在2个索引中查找搜索词。Visual Studio向我显示以下消息: “已弃用。您可以在查询中指定_index以定位特定索引” 但是我该怎么办呢? 问题答案: 由于不建议使用indexs查询,因此它目前仍可以使用,但不推荐使用该警告是可能在将来的主要版本中将其删除。 您可以通过以下方式实现与索引查询相同的功能: 产生以下查询JSON

  • 我有一个SearchActivity,它来自具有以下代码的搜索菜单项: 在上,搜索活动声明如下: 在搜索活动的< code>onCreate()和< code>onNewIntent()方法中,我处理传入的意图,但是如果我记录查询,无论我更改查询多少次,它只显示启动搜索活动的第一个查询。 我这里有什么遗漏吗?

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • MarkLogic 9.0.8.2 在开发环境中,我们逐个创建了5个字段(Field1、Field2、Field3、Field4、Field5),即每个索引需要大约20个小时来19M记录,搜索工作正常。 对于系统测试环境,我们以相同的顺序一次创建了5个字段,MarkLogic花了大约3天的时间完成了对19M条记录的索引。 但搜索只对Field1有效,对其他字段无效。我们尝试了一切,但都没有成功,然

  • 问题内容: 我正在使用索引器将数据从我的SQL数据库同步到Azure搜索服务。我的SQL视图中有一个字段,其中包含XML数据。列包含字符串列表。集合(Edm.String)中我的Azure搜索服务索引中的对应字段。在检查一些文档时,我发现Indexer不会将Xml(SQL)更改为Collection(Azure Search)。关于如何从Xml数据创建Collection的方法,是否有任何解决方法