刚刚开始使用postgres在django中使用了haystack的elasticsearch,到目前为止我对它非常满意。
我想知道通过ES的搜索查询(过滤器)是否会向数据库提交查询,还是他们使用索引期间收集的数据?
答案 0 :(得分:0)
鉴于我可以删除数据库中的数据并仍然搜索,答案似乎是肯定的,查询不会触及数据库但只触及索引。
另外,我在这个问题上找到了这个文件: http://django-haystack.readthedocs.org/en/latest/best_practices.html#avoid-hitting-the-database
此外,这也来自the docs:
例如,利用这一点的一个好方法是预渲染 对象的搜索结果模板在索引期间。你定义一个 附加字段,使用它渲染模板,它跟随主要 将索引记录到索引中。然后,当拉动该记录时 它匹配一个查询,你可以简单地显示该字段的内容, 这避免了数据库命中。: