2017-09-27 3 views
1

結果のSOLRを照会すると、その結果にフィールドpriceの最小値と最大値がローカルパラメータtag=priceローカルパラメータを持つフィールドのクエリmin()およびmax()に加えて、StatsComponentの代わりに

現在、我々はstatsを使用している:

`stats=true&stats.field={!ex=price}price` 

クエリ時間の良い部分は、(debugQuery情報から判断する)は、この付加的な情報になり、私はその情報を取得するための別の方法を探していたことを見て。いくつかのアイデアが頭に浮かんだが、どれも私のために働いていない:

(A)のみ何も、statsからminmaxを返さない:私はstatsの出力を減らす方法を見つけることができません。方法はありますか?

(B)を使用json.facet:次のクエリで私はminとmax価格を得るが、私はそれだけがローカルパラメータなしを動作させることができます。

json.facet={price_min:'min(price)',price_max:'max(price)'} 

失敗:

json.facet={price_min:'min(price)',price_max:'max(price)',domain:{}} 

"expected facet/stat type name, like {type:range, field:price, ...} but got null , path=/facet"

json.facet={price_min:'min(price)',price_max:'max(price)',excludeTags:price} 

"org.apache.solr.search.SyntaxError: Unknown aggregation agg_price in ('price', pos=5)"

json.facet={price_min:'min(price)',price_max:'max(price)',domain:{excludeTags:'price'}} 

"Unknown facet or stat. key=domain type=excludeTags args=price , path=/facet"

答えて

1

あなたはそうのような、あなたのJSONファセットにquery facetを試すことができます:

json.facet={ 
     prices: { 
       type: query, 
       q: "*:*", 
       facet: { 
        price_min:"min(price)", 
        price_max:"max(price)" 
       }, 
       domain: { 
        excludeTags: price 
       } 
       // -- works also without "domain": 
       // excludeTags: price 
     } 
} 
+0

これは、呼び出しの統計に代わるものです。しかし、debugQueryを見ると、少なくとも私のインデックスではそれほど高速ではありません。ファセットの* all *を 'json.facet'に移動すると、おそらく改善になるでしょう。現在、私は "伝統的な"ファセットを通じて価格から離れてすべてを取ります。 – Risadinha

関連する問題