当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch使用java api返回原始json

松阳泽
2023-03-14

我在spring web应用程序中有以下要求:

  • 从Elasticsearch中查找对象并在谷歌地图上显示(首选json格式)
  • 从Elasticsearch中查找对象(与上面的查询相同),并将其显示在列表中(首选java对象格式,以便在JSP页面上显示)

我使用SearchRequestBuilder编写了Java API搜索,效果很好:

SearchRequestBuilder request = client.prepareSearch("index").setTypes("type")
        .setSearchType(SearchType.QUERY_THEN_FETCH).setFrom(0).setSize(10).addFields(RESPONSE_FIELDS);
//request is much more complicated
//...
SearchResponse response = request.execute().actionGet();
SearchHits hits = response.getHits();

但是为了在谷歌地图上显示它,我更喜欢从elasticsearch中获取JSON对象,而不是像这样的SearchSolutions对象:

{
    "_index": "indexName",
    "_type": "type",
    "_id": "9094",
    "_version": 31,
    "found": true,
    "_source": {
        //list of properties
    }
}

是否有可能得到JSON响应使用JavaAPI搜索请求构建器或我必须使用REST API?

共有1个答案

越健
2023-03-14

Java api不会为您映射到json(或任何其他实体)。但是,您可以执行以下操作:

  • 使用spring data elasticsearch直接反序列化到实体
  • 从Java api获取响应,并使用类似Jackson的东西解析为json
  • 考虑使用jest Api,它将返回gson(谷歌json)
 类似资料:
  • 环境 期望的行为 我想更新文档并返回原始文档。 实际行为 正在返回更新的文档,而不是原始文档。 我试过的 起初,我在查看findAndModify: http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findAndModify 然而,那里的文档表示它已被弃用,并使用findOneAndUpdate、findOn

  • 我希望自动将对象序列化为JSON的便利性和返回原始JSON字符串的能力。我正在使用Gson而不是Jackson,因为Gson已经在我的应用程序中有一段时间了,我有现有的调整,转换器,和注释遍布我的应用程序。 我可以自动序列化POJO的: 我希望这也能奏效: 现在的结果是一个转义值: 而不是:

  • 注:[2017年1月11日]RestInfoAdapter.java的源代码已经更改和更新(参见下面的第2项) 我一直在尝试通过保留原始输入列表的备份/副本来使我的搜索视图返回到原始列表。但是,它根本不起作用。我的这个问题包括使用自定义类的RecyclerView和ArrayList。 是一个名为<code>RestInfo 我是如何尝试的 适配器类,以便RestInfo可以呈现在卡片视图中(因此

  • 问题内容: 我想构建自己的JSON,并让服务返回一个字符串,这是代码 我得到的响应包含用于在c#中的字符串中创建\的\“。 以下是响应。 值已正确编码,但json本身未正确格式化。这些导致它破烂不堪。 我该如何返回一个字符串,而在’的前面没有\呢? 问题答案: 目前,您的网络方法与一起返回。它遵循字符串的JSON编码。对应于www.json.org,字符串中的所有双引号将使用反斜杠转义。因此,您目

  • 问题内容: 我正在将MongoDB与节点js一起使用 我想更新一个现有文档并返回更新后的文档,该文档已正确更新。但是它返回的旧文件意味着更新之前的原始文件。我已经使用了参数,但是没有用。 响应是 当我直接通过终端转到mongoDB并尝试 该文档已正确更新,它只返回原始文档而不是已更新的文档。 在这里停留了2个小时,我们将不胜感激 在package.json中 问题答案: Node.js 驱动程序文

  • 最近,我开始在Java后端使用Elasticsearch(7.6.x)(我基本上是ES的初学者),我有一个一般性的问题,我搜索了这个问题,但没有找到答案: 我的工作流程如下: > 我打开kibana的开发工具控制台,想出一个要搜索的查询。因为语法对我来说是新的,所以需要一些时间。 然后我的DAO-s中有了。我正试图将我在kibana中创建的查询“翻译”给众多的构建者,用java API构建一个查询