2011-07-27 7 views
0

私はsolrにproduct_codeとtitleという2つのインデックスを持っています。 product_codeはStrFieldを使用し、タイトルはDoubleMetaphoneでTextFieldを使用します。ソルのインデックスを順番に照会し、一致すると停止しますか?

私はユーザーが商品コードまたはタイトルの検索のためのフリーテキストのいずれかを入力するための単一の検索ボックスを持っています。私は現在dismaxを使ってqf = product_codeというタイトルを使っています。私が持っている問題は、一度DoubleMetaphoneが適用されると、商品コード(例:LC12345)がタイトルの単語と一致することが非常に多いことです。

それでは、私がやりたいことは、それ最初がPRODUCT_CODEインデックスにクエリの期間を適用し、全く一致がない場合にのみ、その後タイトルインデックスへのクエリ用語を適用するようにクエリを構築です。 Solrとは別の2つのクエリを実行することなくこれを行う方法はありますか?これはAJAXの 'ライブ検索'のためのものですので、待ち時間を最小限に抑えたいので、Solrに対して2つの個別のクエリを実行する必要はありません。

-マット

答えて

0

答えはist - noです。 私があなたを得るなら、あなたは何かのようなものが必要です。回答= oの場合はq = X q = Y。 Solrにはそのような機能はありません。たとえsolrがインデックスを2回クエリする必要があっても、2回のクエリーを使用する場合と同じになります。

1つのクエリでアプリケーションを改善するにはどうすればよいでしょうか(本当にnessecaryの場合)、クエリブースターを使用しています。あなたのインデックス付きデータのためのあなたのsolrconfigでクエリ^ 5とタイトル^ 1

:あなたは

PRODUCT_CODEのようなものを設定した場合。これにより、上にproduct_codeの結果が表示され、下の近くにタイトルが表示されます。 product_codeがない場合、タイトルの結果のみが存在します。

助けて欲しいと思っています。

関連する問題