問題タブ [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.
javascript - 正規表現は、クエリ パラメータ (++、+-、および +) の先頭のプラス文字を置き換えますか?
lunr.jsを使用しています。
以下のこのJavascriptコード
- 最初の検索からクエリ パラメータを取得します
- バインディング + 文字をスペースに置き換えます
- 次の検索のために、変更されたクエリを検索フィールドに保存します
- 次に、最終的に変更されたクエリを使用して検索します
そのため、クエリ パラメータ文字列は次のようにtest+ABCD+Test++Test2+-Test+-Test+Test
なり、コードはクエリ パラメータの + 文字q
をスペースに置き換えて、ユーザーに結果を適切に表示しますが、検索文字列は次のようになります。
「テスト+テスト-テスト」
現在の結果
「テストテスト-テスト」
私は期待するだろう
「テスト+テスト-テスト」
次のようなtempQueryを使用して、クエリを数回続けて変更しようとしました
しかし、これは残りの+文字ではうまくいかず、気分が悪いので、助けが必要です.
正しい正規表現を使用するために要約するだけですか (それが何であれ、アドバイスを歓迎します)、または lunr.js でクエリパラメーターを使用するためのより良い方法がありますか?
reactjs - Lunr - gatsby-plugin-lunr - ビルド時にデータ/インデックスを変更できますか?
検索コンポーネントが必要な Gatsy-Sanity プロジェクトがあります。このために、私はgatsby-plugin-lunrを使用しています。ノードが多言語であるという問題が発生しました。たとえば、私のフィールドの 1 つは次のように構成されています。
(このパーサーは、要するに次のようなものです_type
。'locale*' で始まるキーがある場合、キー en または nl の値のみを返します。これは var によって渡されます)
データを分割/削除するパーサーを作成できます。検索インデックスから検索クエリを実行するコンポーネント内で、この種の作業 (まだ成功していません) があります。しかし、それは検索ごとに解析することを意味します。gatsby-node.js
lunr プラグインを使用してビルドする方法はありますか? 結果のスラッグ/パスに言語プレフィックスを追加する必要があるため、これも必要です。
javascript - 検索機能のロジックを改善するにはどうすればよいですか? Lunr.js の使用
そのため、検索機能にLunr.jsを使用しています。すべてがうまく機能していますが、「神」や「教会」などの特定のキーワードを検索すると、検索時間が許容できないほど長くなります。つまり、30 秒、さらには 1 分を超える長さです。これを引き起こしているのは、私が使用しているロジックに違いないと確信しています。少なくともそうだと思います。私の検索機能の目的は、ユーザーの入力を検索し、本の名前と searchQuery が見つかったページと共にキーワードが見つかった文のみを返すことです。私の目標は、オフラインで作業できる検索機能を持つことです。これは Cordova プロジェクトです。ロジックを簡単にフォローできるように、すべてにコメントを付けました。お時間をいただき、ご意見をお寄せいただきありがとうございます。
そして、これは私の「ドキュメント」変数にロードされた私のjsonファイルのほんの一部です。