0

私は、solr に product_code と title という 2 つのインデックスを設定しています。product_code は StrField を使用し、title は DoubleMetaphone で TextField を使用します。

ユーザーが製品コードまたはタイトル検索用のフリー テキストを入力するための単一の検索ボックスがあります。私は現在、dismax を使用して qf=product_code title を実行しています。私が抱えている問題は、DoubleMetaphone が適用されると、製品コード (LC12345 など) がタイトルの単語と一致することが非常に多いことです。

そこで私がやりたいのは、最初にクエリ用語を product_code インデックス適用し、一致がない場合にのみクエリ用語をタイトル インデックスに適用するような方法でクエリを作成することです。Solr に対して 2 つの別々のクエリを実行することなく、これを行う方法はありますか? これは AJAX の「ライブ検索」のためのものなので、レイテンシーを最小限に抑えたいので、Solr に対して 2 つの別々のクエリを実行する必要はありません。

-マット

4

1 に答える 1

0

答えは - いいえ。私があなたを正しければ、あなたは次のようなものが必要です。答え = oq=Y の場合、q=X。Solrにはそのような機能はありません。solr がインデックスを 2 回クエリする必要があるとしても、2 つのクエリを使用するのと同じです。

クエリを 1 つだけ使用してアプリケーションを改善するためにお勧めすることは (それが本当に必要な場合)、query-booster を使用することです。次のようなものを設定すると

product_code:query^5 と title^1

インデックス付きデータのsolrconfigで。これにより、product_code の結果が一番上に表示され、タイトルが一番下に表示されます。product_code がない場合は、タイトルの結果のみが表示されます。

それが役立つことを願っています

于 2011-07-27T10:54:33.710 に答える