2011-12-28 16 views
2

solrでクエリを作成する方法はありますか?たとえば、インデックス付きフィールドxとyが2つあるとします。 +x:123 +y:abcのようなクエリ。表現の順序は(パフォーマンスに関する限り)重要ですか?たとえば、一方の式が他方の式よりも小さい文書集合を生成する場合、これはクエリのパフォーマンスに影響を与える可能性がありますか?solrクエリを作成する

+0

RDBMS結合最適化の問題からインスピレーションを得ましたか?例:結合することができます**(1)** 1つのテーブルの10000行を5つの行に結合するか、**(2)** 1つのテーブルの5つの行をもう1つのテーブルの10000行に結合します。 [インデックスデータ構造](http://en.wikipedia.org/wiki/Inverted_index)と[採点アルゴリズム](http://en.wikipedia.org/wiki/Vector_space_model)のルックアップをよく見なければならないかもしれません。 )luceneがそれを実装する方法。 – aitchnyu

+0

私は実際にRDBMS結合最適化の問題があることを認識しませんでした。クエリの作成方法がパフォーマンスに影響を与えるかどうかは不思議に思っていました。 – Kevin

答えて

0

"+ x:123 + y:abc"がテキスト検索パラメータで使用されている場合、その順序に違いはないと思います。パフォーマンスの大幅な向上は、fq(フィルタクエリ)とqのどちらを使用するかを知り、キャッシュ/コミットを調整したときです。

FQは、値の制限されたリストと非「テキスト検索」フィールドに最適です(のような作り、モデル、タイプ、カテゴリ、色)

Q「テキスト検索」ので、「ウェブを探してためになります開発者ロックスター "対"ロックスターデベロッパーウェブ "は同じ結果を返します。

+0

私はfqを使用して、かなり良いスピードアップを得ました、ありがとう。 – Kevin

+0

頻繁に要求される照会サブセットにはfq、「カスタム」ではなく頻繁に変更される照会サブセットに対してはqを使用します。どちらも調整可能なさまざまなキャッシュ構成を使用します。キャッシュされたfqsが一度だけキャッシュされるのではなく、何度も何度もリクエストされたときに、fqキャッシュは明らかに最もサポートされています。 qキャッシュを増やすことは、あまりにも多くのことが要求されることのないあまりにも多くのqセットが保持され、solrを遅くするため、生産的になる可能性があります。 http://lucidworks.com/blog/advanced-filter-caching-in-solr/ – Risadinha