Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当查询结果需要在发送到客户端之前进行操作时,如何快速地从Mongodb访问大量数据_Javascript_Node.js_Reactjs_Database_Mongodb - Fatal编程技术网

Javascript 当查询结果需要在发送到客户端之前进行操作时,如何快速地从Mongodb访问大量数据

Javascript 当查询结果需要在发送到客户端之前进行操作时,如何快速地从Mongodb访问大量数据,javascript,node.js,reactjs,database,mongodb,Javascript,Node.js,Reactjs,Database,Mongodb,我有一个Mongodb数据库,具有基于React的前端和基于节点的后端,集合中有大约100000个文档。我已经做了索引,我已经在使用Redis了。我已经实现了一个搜索功能来查找包含搜索查询的所有具有“title”属性的相关文档,并将它们显示给用户。我还使用分页,每页显示20个结果,用户可以在结果上应用各种过滤器 到目前为止,我所做的是当用户搜索某个内容时,在数据库上执行文本搜索。然后根据搜索查询的相关性对所有搜索结果进行评分,并按评分顺序排序,然后返回给客户机。 然后,当页面被更改或应用过滤器时

我有一个Mongodb数据库,具有基于React的前端和基于节点的后端,集合中有大约100000个文档。我已经做了索引,我已经在使用Redis了。我已经实现了一个搜索功能来查找包含搜索查询的所有具有“title”属性的相关文档,并将它们显示给用户。我还使用分页,每页显示20个结果,用户可以在结果上应用各种过滤器

到目前为止,我所做的是当用户搜索某个内容时,在数据库上执行文本搜索。然后根据搜索查询的相关性对所有搜索结果进行评分,并按评分顺序排序,然后返回给客户机。 然后,当页面被更改或应用过滤器时,更改只在javascript前端发生。大约9000个结果意味着从后端发送大约11MB的数据需要花费大量时间

我可以做的一件事是,每次搜索都从数据库中检索所有数据并对它们进行评分,然后根据评分对它们进行排序,只返回20个结果显示在第一页上,但每次更改页面或应用过滤器时,我将不得不再做一次完整的事情,这将需要很长时间来完成像过滤这样简单的事情

我想知道如何在不影响过滤和页面更改速度的情况下,在客户端更快地获取数据


此外,还欢迎提供额外或不同技术堆栈的建议。谢谢。

看起来所有这些都可以通过elasticsearch轻松解决。不要在客户端做任何事情。elasticsearch可以在几分之一毫秒内轻松处理所有复杂的查询