大家好我正在使用后端数据库作为PostgreSQL服务器的Django项目。我已选择elastic search
作为我项目的搜索引擎。
我使用elastic search-dsl-py
在Django模型和elastic search
doc类型之间创建了一个映射。并使用Django signals
来捕获update
和delete
个事件。
顺便说一句,我还没有将Django模型中的所有字段映射到弹性搜索。
当用户搜索他/她从弹性搜索服务器获得主页的项目列表时。当用户单击项目列表时。我应该在elastic_search server
或Postgres server
如果我将每个对象的所有细节都放在弹性服务器中,那将对我来说很痛苦,因为Django模型中存在嵌套关系。
如果我没有将所有细节都放在弹性搜索服务器中,我需要查询数据库,以获得与弹性搜索查询相比速度较慢的项目的详细信息。
我应该采用哪种方法?
将所有属性与弹性搜索服务器中的嵌套关系一起索引,并对弹性搜索执行所有查询操作。
OR
仅在弹性搜索服务器中索引必要的字段,对于详细信息视图,使用必需的字段ID对数据库进行q查询。
以前有没有人有这种经历?
答案 0 :(得分:1)
这个决定实际上取决于您尝试使用弹性搜索解决的问题。 最近我参与了一个使用弹性搜索的项目。原因是加快搜索速度并提供更好的搜索结果。但是,从数据库(mssql)查询所选产品的详细信息。 映射所有或几个字段的决定取决于你想要的弹性搜索。如果它有更好的搜索结果(结果+速度),那么我建议你只映射那些帮助用户搜索的字段。