問題タブ [lunrjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
129 参照

javascript - 正規表現は、クエリ パラメータ (++、+-、および +) の先頭のプラス文字を置き換えますか?

lunr.jsを使用しています。

以下のこのJavascriptコード

  • 最初の検索からクエリ パラメータを取得します
  • バインディング + 文字をスペースに置き換えます
  • 次の検索のために、変更されたクエリを検索フィールドに保存します
  • 次に、最終的に変更されたクエリを使用して検索します

そのため、クエリ パラメータ文字列は次のようにtest+ABCD+Test++Test2+-Test+-Test+Testなり、コードはクエリ パラメータの + 文字qをスペースに置き換えて、ユーザーに結果を適切に表示しますが、検索文字列は次のようになります。

「テスト+テスト-テスト」

現在の結果

「テストテスト-テスト」

私は期待するだろう

「テスト+テスト-テスト」

次のようなtempQueryを使用して、クエリを数回続けて変更しようとしました

しかし、これは残りの+文字ではうまくいかず、気分が悪いので、助けが必要です.

正しい正規表現を使用するために要約するだけですか (それが何であれ、アドバイスを歓迎します)、または lunr.js でクエリパラメーターを使用するためのより良い方法がありますか?

0 投票する
1 に答える
193 参照

reactjs - Lunr - gatsby-plugin-lunr - ビルド時にデータ/インデックスを変更できますか?

検索コンポーネントが必要な Gatsy-Sanity プロジェクトがあります。このために、私はgatsby-plugin-lunrを使用しています。ノードが多言語であるという問題が発生しました。たとえば、私のフィールドの 1 つは次のように構成されています。

(このパーサーは、要するに次のようなものです_type。'locale*' で始まるキーがある場合、キー en または nl の値のみを返します。これは var によって渡されます)

データを分割/削除するパーサーを作成できます。検索インデックスから検索クエリを実行するコンポーネント内で、この種の作業 (まだ成功していません) があります。しかし、それは検索ごとに解析することを意味します。gatsby-node.jslunr プラグインを使用してビルドする方法はありますか? 結果のスラッグ/パスに言語プレフィックスを追加する必要があるため、これも必要です。

0 投票する
1 に答える
212 参照

javascript - 検索機能のロジックを改善するにはどうすればよいですか? Lunr.js の使用

そのため、検索機能にLunr.jsを使用しています。すべてがうまく機能していますが、「神」や「教会」などの特定のキーワードを検索すると、検索時間が許容できないほど長くなりますつまり、30 秒、さらには 1 分を超える長さです。これを引き起こしているのは、私が使用しているロジックに違いないと確信しています。少なくともそうだと思います。私の検索機能の目的は、ユーザーの入力を検索し、本の名前と searchQuery が見つかったページと共にキーワードが見つかった文のみを返すことです。私の目標は、オフラインで作業できる検索機能を持つことです。これは Cordova プロジェクトです。ロジックを簡単にフォローできるように、すべてにコメントを付けました。お時間をいただき、ご意見をお寄せいただきありがとうございます。

そして、これは私の「ドキュメント」変数にロードされた私のjsonファイルのほんの一部です。