1

やあみんな、私はアプリケーションにいくつかの検索機能を実装しようとして書いていました。

Viewimインデックスを使用してMSSQLServerへのTomcat7JDBC接続で実行されているSolr1.4.1Solrはインデックス作成を終了し、インデックスが機能しています。

Solrを検索して通信するために、小さなテストWCFサービスを作成しました(後でメインサービスで実装する予定です)。

目的は、メインアプリケーションにテキストフィールドを実装することです。このテキストフィールドでは、ユーザーはペイントブラシのようなものを入力し始め、入力される文字が増えるにつれてオブジェクトのリストを徐々にフィルタリングすることができます。

これは、特定の時点までSolrで問題なく機能しています。クエリの最後にワイルドカードアスタリスクを使用しているため、p * pa * pain *paint*などの多くのリクエストをスローしています。

サーバーでの等々とその結果は問題なく返されます(実際には非常に高速です)。唯一の問題は、ユーザーが単語全体を入力すると、クエリがペイントブラシ*になり、その時点でsolrが0の結果を返すことです。

したがって、query +wildcardはquery+somethingのみであり、query+nothingではないようです。

Lucene.Netでこれを機能させることができましたが、Solrは見た目と同じように動作していません。

そのような機能の実装について何かアドバイスはありますか?

SolrNetを使用しているので、見るべきコードはあまりありません:http: //pastebin.com/tXpe4YUe

私はそれがAnalyzerとParserと関係があると思いますが、どこを見ればよいかを知るためにSolrにはまだそれがありません:)

4

2 に答える 2

2

Solrではプレフィックスワイルドカードクエリを使用した提案を実装しません。これを行うのにより適した他のメカニズムがあります。見る:

于 2011-01-20T15:55:24.027 に答える
0

ステミングが問題の原因のようです。タイプのテキストの代わりにtext_wsのクローンを使用して修正しました。scema.xmlへの私の変更:http://pastebin.com/xaJZDgY4

ステミングが無効になり、小文字のインデックスが有効になります。すべてのクエリが小文字である限り、常に結果が得られるはずです(あるとしても)。

問題は、アナライザーがワイルドカードを使用できないことであると思われるため、ワイルドカードを使用すると、ジョニーをジョニまたはジョニーの結果にするロジックが「壊れ」ます。

直面している同様の問題とここでの私の解決策がうまく機能しない場合は、クエリ文字列にdebugQuery = onを追加して、何が起こっているかについてもう少し詳しく知ることができます。それは私が問題を絞り込むのに役立ちました。

于 2011-01-21T07:49:07.753 に答える