2017-09-14 34 views
0

大家好我正在处理Django项目,并将后端数据库作为PostgreSQL服务器。我选择了elastic search作为我的项目的搜索引擎。将db内容索引到弹性搜索

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

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

当用户搜索他/她从弹性搜索服务器获得一个项目列表到主页时。当用户点击项目列表时。我应该在哪里查询在elastic_search serverPostgres server

如果我把每一个对象的所有细节,弹性服务器项目的详细数据,这将将是一个痛苦对我来说,有一个Django模型中的嵌套关​​系。

如果我没有在弹性搜索服务器中放置所有细节,我需要查询数据库,以获取与弹性搜索查询相比会变慢的项目的细节。

我应该走哪条路?

在弹性搜索服务器中索引所有属性以及嵌套关系,并执行所有查询操作以进行弹性搜索。

OR

指数仅在弹性搜索服务器所需的字段,以及详细视图,做q查询与必填字段ID数据库。

有没有人有过这种经验?

回答

1

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