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

使用django haystack运行Elasticsearch自动更新索引

苍和裕
2023-03-14

我正在开发一个开放的博客网站,对于它的搜索功能,我正在使用django haystack的弹性搜索,但问题是每次发布博客文章后,我都需要运行命令-python manage。py更新索引,如何自动生成更新索引?你能告诉我,如果该网站有数百万的帖子,那么,这是一个好主意,或者它会崩溃我的网站,因为我需要刷新索引每次,我是新手请告诉我正确的方法为重搜索。instagram和其他社交网站使用什么搜索技术。

共有1个答案

冯开诚
2023-03-14

通过将此项添加到设置中,可以启用实时更新。py:

HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

更多详情请点击这里:

http://django-haystack.readthedocs.io/en/v2.4.1/signal_processors.html#realtime-realtimesignalprocessor

如果重新索引可能需要一些时间,您应该使用队列来防止请求/响应周期受到阻碍,这里建议可能的解决方案,如芹菜:

http://django-haystack.readthedocs.io/en/v2.4.1/other_apps.html#ref-其他应用程序

 类似资料:
  • 问题内容: 我定义了以下滚动索引: 今天效果很好,它收集了我所有 现有的 每月滚动指标。问题在于,当索引滚动到新的月份时,它会自动生成的新索引,但是我的别名无法获取该新索引。每个月我需要通过运行以下命令来更新别名: 有什么方法可以让ES自动选择? 问题答案: 是的,您可以使用模板。 空对象是必然的邪恶,因为JSON期望。 每当创建匹配索引(基于参数)时,它将自动将模板应用到该索引。在这种情况下,模

  • 问题内容: 我需要执行选择,然后以原子方式更新其中的一些行。 我正在使用的代码如下所示(简化): 我可以保证更新将自动执行吗?如果没有,我如何保证? 如果任何其他进程更改了您通过其更新的数据库行,该怎么办?有什么方法可以锁定行? 问题答案: 这里可能有很多技术和概念在起作用,当您开始考虑多线程/多请求应用程序时,事情就会变得相当棘手。 正如Iassevk所说,您应该研究使用事务来确保更新的原子性-

  • 问题内容: 我是ElasticSearch的新手。我正在尝试为索引重新索引以便对其重命名。我正在使用NEST API v5.4。我看到了这个例子: 资料来源 :http : //thomasardal.com/elasticsearch-migrations-with-c-and- nest/ 但是,我无法使用NEST 5.4重现此内容。我认为这是2.4版。我检查ElasticSearch的重大更

  • 问题内容: 有没有一种方法可以从ElasticSearch中检索有关特定索引的最新更新时间的信息?我的目标是能够知道什么时候是最后一次在索引中插入/更新/删除任何文档。如果无法做到这一点,是否可以在索引修改请求中添加一些内容,以便稍后提供此信息? 问题答案: 您可以从_timestamp获取修改时间 为了更轻松地返回时间戳,您可以设置Elasticsearch来存储它: 如果插入文档然后对其进行查

  • 问题内容: 我正在尝试了解如何在Elasticsearch中更新索引文档。我不明白它是如何工作的?什么是该API指的是在做什么?假设您有一个带有嵌套文档的文档,您需要做什么来更新它? 删除文档然后索引“已更新”版本与普通更新之间有什么区别? 问题答案: 更新请求从Elasticsearch检索源,对其进行修改并将其索引回Elasticsearch。如果您已经具有使用更新的文档副本,则毫无意义。仅索

  • 我在hibernate search 6中使用elasticsearch时遇到了问题。让我们假设我们有这样的设置: } } 当我第一次持久化EntityA(即被索引的实体)时,EntityB作为EntityA的子实体持久化在elasticsearch索引中。这是可以的。当我直接编辑EntityB并对其进行更改时,问题出现了,这种更改没有传播到elasticsearch索引。我错过了什么吗? 更新1