将db内容索引到弹性搜索

时间:2017-09-14 03:27:05

标签: python django elasticsearch django-models django-signals

大家好我正在使用后端数据库作为PostgreSQL服务器的Django项目。我已选择elastic search作为我项目的搜索引擎。

我使用elastic search-dsl-py在Django模型和elastic search doc类型之间创建了一个映射。并使用Django signals来捕获updatedelete个事件。

顺便说一句,我还没有将Django模型中的所有字段映射到弹性搜索。

当用户搜索他/她从弹性搜索服务器获得主页的项目列表时。当用户单击项目列表时。我应该在elastic_search serverPostgres server

中查询项目的详细数据。

如果我将每个对象的所有细节都放在弹性服务器中,那将对我来说很痛苦,因为Django模型中存在嵌套关系。

如果我没有将所有细节都放在弹性搜索服务器中,我需要查询数据库,以获得与弹性搜索查询相比速度较慢的项目的详细信息。

我应该采用哪种方法?

将所有属性与弹性搜索服务器中的嵌套关​​系一起索引,并对弹性搜索执行所有查询操作。

OR

仅在弹性搜索服务器中索引必要的字段,对于详细信息视图,使用必需的字段ID对数据库进行q查询。

以前有没有人有这种经历?

1 个答案:

答案 0 :(得分:1)

这个决定实际上取决于您尝试使用弹性搜索解决的问题。 最近我参与了一个使用弹性搜索的项目。原因是加快搜索速度并提供更好的搜索结果。但是,从数据库(mssql)查询所选产品的详细信息。 映射所有或几个字段的决定取决于你想要的弹性搜索。如果它有更好的搜索结果(结果+速度),那么我建议你只映射那些帮助用户搜索的字段。