我有一个Java客户端,该客户端允许为本地ElasticSearch服务器上的文档建立索引。
我现在想构建一个简单的Web UI,允许用户通过在表单中​​键入一些文本来查询ES索引。

我的问题是,在调用ES API发出查询之前,我想通过调用一些Java代码来预处理用户输入。

最简单,最“干净”的方法是什么?

  • 我是否应该创建自己的API,以便UI可以访问我的Java代码?
  • 是否应使用JSP构建UI,以便可以直接调用Java
    码?
  • 我可以以某种方式使ElasticSearch在执行我的Java代码之前
    查询执行? (也许通过创建我自己的ElasticSearch插件?)
  • 最佳答案

    最后,我选择了使用基于Json的RESTful API的简单解决方案。时间证明了这对于我的情况而言是非常灵活和有效的,所以我认为我应该分享一下:

  • 我的Java代码通过运行HTTP服务器并以Json格式的ES结果响应客户端请求,从而展示了查询ElasticSearch索引的能力。我使用sun.net.HttpServer用几行代码创建了HTTP服务器。那里有更严重的/复杂的HTTP服务器(例如Tomcat),但这很快就采用了,并且需要零配置的麻烦。
  • 我的Web UI向Java服务器发出HTTP GET请求,接收Json格式的数据并愉快地使用它。我的UI是用PHP实现的,但是只要您可以发出HTTP请求,任何Web语言都可以完成。

  • 在我的情况下,该解决方案非常有效,因为它不依赖ES插件。我可以在调用ES之前进行任何类型的预处理,甚至可以在将结果发送回UI之前对ES输出进行后处理。

    关于java - 在调用ElasticSearch API之前预处理输入文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31669068/

    10-13 07:49
    查看更多