solr / solrnet-文字検索ごとに手紙にワイルドカードを使用する
-
13-10-2019 - |
質問
やあみんな、アプリケーションにいくつかの検索機能を実装しようとしています。
solr 1.4.1 Tomcat7で実行されているMS sqlserverへの接続では、solrがインデックス作成が終了し、インデックスが機能しているView Im Indexingが完了しています。
SOLRとの通信を検索して通信するには、小さなテストWCFサービスを作成しました(後でメインサービスで実装されます)。
目的は、メインアプリケーションにテキストフィールドを実装することです。このテキストフィールドでは、ユーザーはペイントブラシのようなものの入力を開始し、ますます多くの文字が入力されるにつれてオブジェクトのリストを徐々にフィルタリングします。
これは正常に機能しており、Solrが特定のポイントまで順調に機能しています。私のクエリの最後にワイルドカードアスタリスクを使用しているので、P* Pa* Pain*ペイント*のような多くのリクエストを投げているので
サーバーとその返される結果では問題ありません(実際には非常に速いです)。唯一の問題は、ユーザーが単語全体を入力すると、クエリがペイントブラシ*であることです。その時点でSolRが0の結果を返します。
したがって、クエリ+ワイルドカードはクエリ+何かであり、クエリではなく、何もないようです
私はこれをlucene.netで機能させることができましたが、Solrは同じように物事をしていません。
そのような機能の実装について私に与えることができるアドバイスはありますか?
solrnetを使用しているので、見るべきコードはあまりありません: http://pastebin.com/txpe4yue
アナライザーとパーサーと関係があると思いますが、どこを見るべきかを知るためにまだsolrにはありません:)
解決 2
茎は問題を引き起こしたもののようです。タイプのテキストの代わりにtext_wsのクローンを使用して修正しました。 scema.xmlへの私の変更: http://pastebin.com/xajzdgy4
STEMMINGは無効になり、小文字のインデックス作成が有効になっています。すべてのクエリが小文字である限り、常に結果を与える必要があります(まったくあれば)。
問題は、アナライザーがワイルドカードで動作しないため、ジョニーがジョニーやジョニーの結果になるロジックは、ワイルドカードを使用すると「壊れている」というロジックです。
あなたがまったく同様の問題と私の解決策が完全に機能しない場合は、debugquery = on on Query文字列に追加して、何が起こっているのかをもう少し確認できます。それは私が問題を絞り込むのに役立ちました。
他のヒント
solrのプレフィックスワイルドカードクエリを使用して提案を実装しません。これを行うのに適した他のメカニズムがあります。見る: