私はsolrをエンタープライズアプリケーションに使用しています。これまでのところ、検索にngramフィールドを使用しているので、うまく動作します。部分的な照会(索引付けされたngramとの照合)では正しく機能します。しかし、問題は、正確なクエリの一致を強制する方法です。たとえば、クエリ "Test 1"は、ユーザーが二重引用符で入力したときとまったく同じテキストに一致する必要があります。現在、いくつかのトークナイザとフィルタを使用しているので、二重引用符はフィルタリングされ、クエリには違いがありません。(これは、使用するアナライザチェーンのためですが、ngramsと部分検索で動作する必要があります。Solr検索フィールドのベストプラクティス
現在、私はngramクエリフィールドを検索しています。正確なクエリの一致を実行するには、どうすればよいですか?ベストプラクティスは何ですか?私が考えているのは、クライアント側から二重引用符を識別し、クエリフィールドを元のフィールドに変更することです(ngramsを使用しないで)。しかし、私が持っている問題は一般的なものであり、solr
は完全なエンタープライズレベルの検索エンジンなので、これを行う良い方法があるはずです。
つまり、私はクライアント側から二重引用符を義認し、それに応じてクエリフィールドを変更する必要がありますか?私はこれについて考えましたが、solrがすでに解決している可能性のある一般的な問題ではありませんか?私は車輪を再発明するかもしれないと思っていた – wattale
@ワタール:答えを確認してくださいもう一つのオプションを追加しました... –
しかし、質問は、ユーザーが故意に二重引用符でクエリを入力するとどのように処理できますか?あなたのアプローチでは、インデックスを正規化して両方を照会するメカニズムを使用する必要があります。二重引用符の意味はありません。大文字と小文字を区別するフィールドも一致する必要がありますedisax parserのpfフィールドを見つけました。私はそれを見ています:) – wattale