我正在寻找使用新的官方客户端库一起工作的AngularJS和Elasticsearch的工作示例:elasticsearch.angular.js 那是在http://www.elasticsearch.org/blog/client-for-node-js-and-the-browser
找到的到目前为止,我发现的示例使用备用客户端或不再工作,因为版本之间的某些内容已发生变化。这使得AngularJS和Elasticsearch的新手很难开始。
具体而言,我正在寻找通过AngularJS使用官方客户端访问Elasticsearch的“Hello World”。
其他人似乎也有同样的问题,因为在官方客户的回购中有一个公开的问题要求同样的事情。 https://github.com/elasticsearch/elasticsearch-js/issues/19
答案 0 :(得分:13)
1)确保您已在本地计算机上正确安装了弹性搜索
在instructions
2)测试本地安装的elasticsearch
通过在命令行上键入
curl -XGET localhost:9200
3)将一些测试数据插入elasticsearch
只需运行此gist中的每个命令(通过单击每个旁边的小绿色三角形)
或者您可以通过在命令行键入以下内容来手动插入数据:
curl -XPUT "http://localhost:9200/test_index/product/1" -d '{
"title": "Product1",
"description": "Product1 Description",
"price": 100
}'
curl -XPUT "http://localhost:9200/test_index/product/2" -d '{
"title": "Product2",
"description": "Product2 Description",
"price": 200
}'
4)测试从elasticsearch检索数据
curl -XGET localhost:9200/test_index/product/1
5)下载angular.elasticsearch.js (或缩小版本)客户端并将其放置在Angular app可用的位置(同一目录应该不错)
6)下载并运行以下代码
http://plnkr.co/edit/vfapGG
您也可以直接从Plunkr网站http://plnkr.co/vfapGG运行此Plunk,但这取决于您的安全设置,因为它需要在localhost:9200
<强>恭喜!强>
您现在有一个有效的Elasticsearch后端和AngularJS前端。
警告强>
在投入生产之前,请确保正确保护您的Elasticsearch服务器,因为任何有权访问它的人都可以轻松地修改或删除您存储的数据,并获得运行Elasticsearch服务器的计算机的CONTROL(基本上是shell访问),如果不是妥善保护。
答案 1 :(得分:4)
如果您正在寻找使用AngularJS和Elasticsearch构建更高级解决方案的原型,我已经创建了库ElasticUI (AngularJS Directives for Elasticsearch)
它建立在官方客户端和elastic.js之上,所以如果你想看看如何开始使用它,source code for the part which does the actual requests可能是一个很好的起点。
答案 2 :(得分:3)
John D,虽然还有其他几个答案我想补充说现在有一个示例项目提供了你正在寻找的“你好世界”的例子。
https://github.com/spenceralger/elasticsearch-angular-example
答案 3 :(得分:0)
我建议您浏览用于ElasticSearch网站上托管的Kibana应用程序的代码。 Kibana使用Angular.js和ES库来加载和呈现其仪表板。
Kibana来源可以在这里找到:
https://github.com/elasticsearch/kibana
它不是&#34; Hello World&#34;例如,你肯定可以从帮助编写它的人那里学到很多东西。
答案 4 :(得分:0)
这是一个非常好的工作代码。我没有找到任何其他类似的教程,包括Elasticsearch和Angular。
我在插入此示例的测试数据时遇到了问题。我在Linux机器上学习了Elasticsearch,并且惊讶于它也没有使用双引号。我最近几年没有编码,因此我花了一段时间才发现问题,经过长时间的搜索,我发现了这个问题。我在Windows命令行上得到了如下工作:
curl -XPUT "http://localhost:9200/test_index/product/1" -d "{\"title\": \"Product1\",\"description\": \"Product1 Description\",\"price\": 100}"