【发布时间】:2016-12-06 10:23:02
【问题描述】:
{
"title": "...",
"description": "...",
"languageKey": "ja"
} {
"title": "...",
"description": "...",
"languageKey": "ja"
} {
"title": "...",
"description": "...",
"languageKey": "ja"
}
这个输出被提供给一个 curl 请求
参考:https://www.elastic.co/blog/loading-wikipedia
curl localhost:9200/dewikiquote/_search -d '{"query": {"match_all":{}}}' \
| jq '.hits.hits[] | ._source' \
| jq '{title: .heading[0], description: .text, languageKey: "ja"} \
| curl -H 'Content-Type: application/json' -XPUT 'http://localhost:11223/context/api/add' -d @-
但在 java 端点下只被点击一次,并且地图data 只有一个标题、描述和语言键。为什么其他 json 项丢失了?
@RequestMapping(path = "/api/add", method = RequestMethod.PUT)
public void add(@RequestBody Map<String, String> data)
{
...
那是因为 jq 输出没有在每个 json 对象上拆分吗?如果是的话,我该如何用 jq 做到这一点?
【问题讨论】:
-
所以让我把这个弄清楚,你正在向 ElasticSearch 请求一些东西,然后试图将其输出提供给另一个 curl 与 java 实现的服务器对话,对吗?
-
是的,我正在尝试使用休眠搜索 + lucene 实现弹性搜索类型功能。我想获取 wikiquote 数据来测试我的自定义分析器。
-
按照我的看法,当您尝试将其发送到终点时,数据不再是数组,不能说 100%,但@zeeshan 的答案可能有效,如果不是,您可能需要考虑在输出上做一些循环