Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 使用Js搜索在节点应用程序中构建索引_Javascript_Lunrjs_Js Search - Fatal编程技术网

Javascript 使用Js搜索在节点应用程序中构建索引

Javascript 使用Js搜索在节点应用程序中构建索引,javascript,lunrjs,js-search,Javascript,Lunrjs,Js Search,我想在节点应用程序中创建一个索引,然后在客户端JavaScript应用程序中使用该索引 我不清楚代码或代码中如何执行此操作 我试过这个: // docs is an array of objects, each with a name, title and description var search = new jsSearch.Search('name'); search.addIndex('title'); search.addIndex('description');

我想在节点应用程序中创建一个索引,然后在客户端JavaScript应用程序中使用该索引

我不清楚代码或代码中如何执行此操作

我试过这个:

  // docs is an array of objects, each with a name, title and description
  var search = new jsSearch.Search('name');
  search.addIndex('title');
  search.addIndex('description');
  search.addDocuments(docs);
…这是:

  var search = new jsSearch.Search('name');
  search.searchIndex = new jsSearch.TfIdfSearchIndex('name');
  search.addIndex('title');
  search.addIndex('description');
  search.addDocuments(docs);
…但我如何才能访问该索引

在客户端JavaScript应用程序中使用此索引

无法将内存中的索引从节点传递到浏览器,以正常方式进行访问(如果只是在浏览器中构建索引)
js search
不[当前]支持序列化。(早期测试表明,从序列化格式恢复与从头开始重新创建相比,速度不会明显加快。)

您可以通过API从Node公开搜索,但我认为这不是您想要的,也不是您正在寻找的

因此,我建议有两种可能性:

  • 首先在客户端构建索引。做起来很快。(如果你不能做到这一点,你所索引的数据太大了,那么就考虑通过前面提到的API来公开它。)而且,如果你不需要所有的可配置性的<代码> JS搜索< /C> >(看起来你不喜欢,基于你的例子),然后考虑使用它的更快的兄弟姐妹,
  • 或者,您可以查看哪些(我相信)支持序列化和恢复索引

您是在服务器端还是客户端运行此代码?您是否有任何RESTAPI、WebSocket或其他通信介质设置,以便在客户端和服务器之间发送消息?嗨,Mike,我正在服务器端运行这个。我希望能够在服务器上创建一个索引,然后缓存并在客户机上使用它。(见下面我对布赖恩回答的评论)谢谢布赖恩!我的目标是尝试离线搜索,就像我在这里做的那样:。我将尝试按照您的建议在客户端的内存中创建索引(同时缓存数据)。