我正在使用django,haystack和Elasticsearch的堆栈构建搜索应用程序。但是我想添加angularjs。我的问题是:
对于angularjs来说,哪种替代方案更适合接收数据并在搜索应用中对其进行操作: 1.使用elasticsearch.js角度库直接查询elasticsearch中的数据 2.或者从干草堆中取出数据并开始玩它。因此,haystack是唯一可以与elasticsearch通信的人。
谢谢!
答案 0 :(得分:2)
这可能取决于你想保留东西的重量或重量。沉重的一开始可能会受到一点伤害,但可能会带来红利。如果你的目标是更短或更短期(玩具项目或原型),那么减少活动部件可能会更好。
如果你全力以赴:
ES< - > haystack< - > django< - >角
然后你获得了这些胜利:
因此,对于这种方法有很多话要说,但也有可能设置很多。如果你只需要一个由ES中的数据驱动的前端,那么你可以拥有一个直接查询ES的粗前端。有些人赢了:
我曾经在solr / haystack / django / backbone的一个堆栈上工作,关注和隐藏/抽象的分离非常好。我没有必要从头开始设置整个堆栈,这是一个现有的项目,我添加/重写了一些相当大的块。
我还使用过ES / node / angular stack,我从头开始设置绝大部分。设置......足够快。简单的事情很简单。当它变得更大时,我觉得在代码上施加足够的纪律以保持它真正干净是更难的。所以这是一种危险的情况,一旦查询似乎都有效,你就会慢慢退回,希望没有新的功能请求进来(他们总是这样做,让我们说实话)。但是,再次,如果这是一个小小的项目,或者你只是想尝试一些新的东西,或者你希望它快速而不是强大,这可能是开始的方式,然后你可以添加当你开始撞墙时其他部分。