gpt4 book ai didi

Elasticsearch 相当于 Map-Reduce

转载 作者:行者123 更新时间:2023-11-29 02:55:19 25 4
gpt4 key购买 nike

当客户端处理过多时,ElasticSearch 中的 map-reduce 等效于什么?是否有类似“流”的东西,以便客户端可以在数据进入时减少输出?

假设我需要在客户端进行连接或复杂的过滤,如果没有一些 map-reduce 方案,这种类型可能不适合内存。我不介意长时间等待响应,但我不想压垮机器(客户端和/或服务器)。

我该怎么办?

示例,映射:

{"book":{"properties":{
"title":{"type":"string", "index":"analyzed"},
"author":{"type":"string", "index":"analyzed"},
}

{"character":{"properties":{
"book_id":{"type":"string", "index":"not_analyzed"},
"name":{"type":"string", "index":"analyzed"},
"age":{"type":"integer"},
"catch-phrase":{"type":"string", "index":"analyzed"},
}

假设我想找到所有至少有 M 个字符且标语不超过 N 的书(其中 N 是客户端提供的参数)

所以会是get_books_with_short_phrases(M,N)

我当然可以将诸如“phrase-length”的字段添加到“character”类型,但我们假设对“catch-phrase”的处理可能一直在变化。

我想将“字符”和“书籍”流式传输到客户端,遍历每个客户端并输出键值 <book>-<character,len(phrase)>然后进一步减少到<book>-<num_of_chars_with_short_phrase>

如果我将所有文档加载到客户端内存中,那可能是一场灾难。如果客户端处理每本书并将其减少到 k,v 可能会更好。

我做错了吗?

解决方案是否以某种方式在服务器上运行脚本,以便执行 map-reduce?

最佳答案

据我所知,您不能使用 ES 进行流式传输。

我相信您知道最好进入一种不存在“连接”的不同思维方式。取而代之的是非规范化并尝试用对 ES 的 1 个查询来覆盖您的用例,当然这并不总是有效。

然而,在上述情况下,我邀请您看一下脚本过滤器,它允许复杂的计算(类似于 sql 存储过程),允许查询时间参数。

我非常有信心这应该为您提供在服务器上一次性执行查询的工具,尽管我只是没有深入研究它。

http://www.elastic.co/guide/reference/query-dsl/script-filter/ http://www.elastic.co/guide/reference/modules/scripting/

关于Elasticsearch 相当于 Map-Reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com