2017-02-24 100 views
0

当从弹性搜索中检索数据时,是否可以更改结果集结构?更改结果集结构elasticsearch

问题在于,时间序列数据有时来自3000-8000条记录,它们是一个json数组,其中包含json对象...在这种情况下解析它并不是真正高效或不必要的,所以我想 - 可以对结果集进行转换只是让一个简单的json对象与时间和数组值的数组?而已? 我可以在java或php中做到这一点,但由于我们想要处理大型数据集的有效方式,我们正在评估我们的选项。

回答

1

您可以控制elasticsearch返回使用什么源过滤:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html

它可以让你选择将返回其索引的文档的一部分,这取决于你的索引结构可能是一个数组时间和价值,或者至少很容易用你选择的语言映射到它。

+0

我不确定我是否可以像这样创建事端{“time”:[“2017-12-12 11:11:00”,“2017-12-12 11:11:01”],“value “:[”0.245“,”0.314“]}这将是简单的没有元数据的json,_source等。 –

+0

是的,我不认为你可以摆脱所有的元数据。 – paqash

0

另一种可能性是使用scripting来控制结果。如果以这种方式映射结果,则应该能够将匹配对象作为key:value的JSON数组。

+0

我读了很多关于这个主题,但我真的没有找到这个问题的解决方案。从ES获取5000条记录并在合理的时间内处理它是否真的很不寻常? –

+0

那么,它绝对不是弹性搜索的主要目的,它是一个全文搜索引擎。 – paqash

+0

好点!你会在这种情况下建议什么? MySQL,Postgre等不是很快或不适合这样的任务... –