使用Js Search

时间:2017-09-27 18:03:05

标签: javascript lunrjs js-search

我想在Node应用中创建一个Js Search索引,然后在客户端JavaScript应用中使用此索引。

我不清楚READMEbenchmark代码如何执行此操作。

我试过这个:

  // 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);

...但是如何在那时访问索引?

1 个答案:

答案 0 :(得分:1)

  

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

没有办法将内存中的索引从Node传递到浏览器以便以通常的方式访问(如果你只是在浏览器中构建了索引)。 js-search [目前]不支持序列化。 (早期测试表明,从序列化格式恢复并且从头开始重新创建它的速度并不快得多。)

可以通过API从Node中公开搜索,但我不会认为您想要的是什么或者您正在寻找什么。

所以我建议了几种可能性:

  • 首先在客户端构建索引。这样做很快。 (如果您不能这样做,那么您要编制索引的数据太大,请考虑通过前面提到的API公开它。)另外,如果您不需要全部js-search的可配置性(根据你的例子看来你似乎没有)然后考虑使用它的更快的兄弟js-worker-search
  • 或者,您可以查看lunr.js(我相信)支持序列化和恢复索引。