問題タブ [ydn-db-fulltext]
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 - 「-」文字を含む部分文字列に基づいてインデックスを照合してレコードを選択するにはどうすればよいですか?
ローカル データベースとして YDN-DB (IndexedDB を抽象化したもの) を使用しています。「会話」というオブジェクト ストアがあり、そのストアには「参加者」というインデックスがあり、会話のさまざまなユーザーの ID を含む文字列があります。例えば:
会話例 #1:
会話例 #2:
インデックスで部分一致を実行するために、解決策として ydn-db-fulltext を使用してみました。全文カタログは次のようになります。
カタログは生成されているようですが、完全一致に問題があるようです。たとえば、参加者インデックスのキーの一部のみを使用してクエリを実行すると、カタログから主キーが返されます。
ただし、「-」を超える値を使用すると、検索リクエストは 0 件の結果を返します。
ドキュメントを読むと、「-」と「*」はそれぞれフレーズを削除し、プレフィックスに一致する予約文字であるため、これは理にかなっています。
クエリ形式はフリー テキストで、各トークンに暗示的および/または準論理演算子が適用されます。完全一致には二重引用符を使用し、結果から減算するには - を使用し、プレフィックス検索には * を使用します。
二重引用符のみを使用して単一引用符の中に二重引用符を入れ、バックスラッシュですべての「-」文字をエスケープしようとしましたが、これらのどれも機能していないようです。
問題は、文字列に「-」文字が含まれるインデックスでどのように一致を実行するかです。