我不明白,如何使用这个插件...
我想使用servlet去连接elasticsearch并运行......
我的环境只有apache tomcat servlet,请帮帮我,谢谢。
答案 0 :(得分:1)
您的想法是通过添加以下依赖项来修改您的Maven pom.xml
(请确保使用right version,具体取决于您正在运行的ES的版本):
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-transport-wares</artifactId>
<version>2.7.0</version>
</dependency>
elasticsearch-transport-wares的JAR文件最终会出现在WEB-INF/lib
文件夹中。
然后在web.xml
中添加新的<servlet>
和<servlet-mapping>
,如下所示:
<servlet>
<servlet-name>esnode</servlet-name>
<servlet-class>org.elasticsearch.wares.NodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>esnode</servlet-name>
<url-pattern>/es/*</url-pattern> <---- you can change this pattern
</servlet-mapping>
这将实例化一个新的servlet,为http://server:8080/es/
路径上的请求提供服务,并将它们代理到您的本地嵌入式Elasticsearch节点,这意味着您可以通过您的Web应用程序查询ES,例如:
curl -XGET http://server:8080/es/your_index/your_type/_search?q=*
上述查询等同于直接使用
查询外部ES群集curl -XGET http://localhost:9200/your_index/your_type/_search?q=*
主要区别在于,您还可以通过检索已在servlet上下文中创建的Elasticsearch节点,使用以下内容从Web应用程序中的任何位置内部查询ES(您可以访问ServletContext
): / p>
Node node = getServletContext().getAttribute("elasticsearchNode")
最后,您可以为您的节点存储/WEB-INF/elasticsearch.json
或/WEB-INF/elasticsearch.yml
中的Elasticsearch配置。