2017-09-27 9 views
0

ノードアプリケーションでJs Searchインデックスを作成し、このインデックスをクライアントサイドJavaScriptアプリケーションで使用したいとします。Js Searchを使用してノードアプリケーションにインデックスを構築する

READMEまたはbenchmarkコードから私には分かりません。

私はこれを試してみた:

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

...と、この:

...しかし、どのように私はその時点でインデックスにアクセスすることができますか?

+0

このコードをサーバー側またはクライアント側で実行していますか?クライアントとサーバーの間でメッセージを送信できるように、REST API、WebSocket、その他の通信メディアの設定はありますか? –

+0

こんにちはMike - 私はサーバー側でこれを実行しています。私は、サーバー上でインデックスを作成し、キャッシュしてクライアント上で使用できるようにしたいと考えています。 (下のBrianの答えに関する私のコメントを参照してください。) –

答えて

1

使用このインデックスは、クライアント側のJavaScriptアプリ

であなただけ構築された場合、あなたが通常の(ような方法でアクセスするには、ブラウザへのノードからメモリ内のインデックスを渡す方法はありませんブラウザのインデックス)。 js-searchは[現在]シリアル化をサポートしていません。 (初期のテストはそれだけで一から作り直す対直列化形式から回復するために大幅に高速ではないことが示唆された。)

あなた APIを介してノードから検索を公開することができますが、私はそれが何をしたいですか何を考えていません。あなたが探しています。

  • が最初の場所で、クライアント側でインデックスを構築します。

    だから私は可能性のカップルをお勧めしたいです。それはかなり速いです。 (これを行うことができない場合は、インデックスを作成しているデータが大きすぎるため、前述のようにAPIを介して公開することを検討してください。)また、コンフィグレーションのすべてがjs-searchあなたの例に基づいていないようです)、より速い兄弟、すなわちjs-worker-searchの使用を検討してください。

  • また、lunr.jsを見ることができます。これは、シリアライズとインデックスの復元をサポートしていると思います。
+0

ありがとうBrian!私の目的は、ここでやったように、オフラインで有効な検索を試みることです:https://simpl.info/search/lunr、https://simpl.info/search/pouchdb。私はあなたが(データをキャッシュしている間に)提案するように、クライアント上のメモリにインデックスを作成してみることにします。 –

関連する問題