0

Solr でLocalParamsに出くわしたばかりで、パラメーターを指定するデフォルトの方法よりも LocalParams を使用するとパフォーマンスに影響があるかどうか疑問に思っていました。

例として、次の URL を考えてみましょう。

デフォルト

/select?q=dog&defType=dismax&qf=q_title_exact^20.0+q_title+q_suggest^0.5

LocalParams

/select?q={!type=dismax qf='q_title q_title_exact^20 q_suggest^0.5'}dog

サイズの違いは些細なことですが、パラメーターの型を 1 つに制限できるという事実は、私にとって非常に有益です。

ただし、 Local Paramsと呼ばれているため、使用すると適切にキャッシュされないなど、パフォーマンスに影響を与える可能性があることが懸念されます。

4

1 に答える 1

2

デフォルトの方法と比較してlocalparamsを使用する場合、キャッシュ機能にとって重要ではないと思います。指定した例は、互いに同じように機能します。ただし、LocalParamsは、次の状況で利点を提供します(標準検索を実行しているか、dismax / edismax検索を使用しているかによって、キャッシュに格納されるレコードに影響を与える可能性があります):-

フィールド「A」が値「A1」に一致し、フィールド「B」が値「B1」に一致するレコードを検索するとします。さらに、dismaxパーサーに基づくフィールド「A」のマッチングが必要ですが、フィールド「B」のマッチングは、solrの標準パーサーに基づいて行う必要があります。

LocalParamsを理解している限り、次のコード(テストされていません):-

/select?q=A:A1&fq=B:B1&defType=dismax&qf=A^20.0+B^0.5

フィールドAとフィールドBの両方のdismax検索を実行するため、目的を果たしません。ただし、次のコード(テストされていない):-

/select?q={!type=dismax qf='A^20.0 B^0.5}A:A1&fq=B:B1

フィールドA全体でdismax検索を実行しますが、フィールドBでは標準検索が実行されます。

したがって、LocalParamsは「さまざまなタイプの検索」の実行に役立つと言えます。使用されているパラメータに応じて、他にも多くの利点があります。

于 2013-01-15T15:56:42.403 に答える