0

我想在 Node 应用程序中创建一个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');
  search.addDocuments(docs);

...还有这个:

  var search = new jsSearch.Search('name');
  search.searchIndex = new jsSearch.TfIdfSearchIndex('name');
  search.addIndex('title');
  search.addIndex('description');
  search.addDocuments(docs);

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

4

1 回答 1

1

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

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

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

所以我建议几种可能性:

  • 首先在客户端构建索引。做起来相当快。(如果你不能这样做,因为你要索引的数据太大,那么考虑通过前面提到的 API 公开它。)另外,如果你不需要所有的可配置性js-search(看起来就像你不一样,根据你的例子)然后考虑使用它更快的兄弟,js-worker-search.
  • 或者,您可以查看lunr.js哪个(我相信)确实支持序列化和恢复索引。
于 2017-09-27T18:10:22.060 回答