2017-09-13 30 views
1

ソースごとにグループ化された最大タイムスタンプに基づいて価格を取得しようとしています。Solrファセット検索 - 最大値とグループに基づいて値を取得

私は現在、各ソースの最大タイムスタンプを取得しているSolrクエリです。このクエリを修正して、対応する価格を最大タイムスタンプに関連付けられるようにするにはどうすればよいですか?

http://localhost:6500/solr/listings/select?q=desc_t:"Watch"&indent=on&rows=0&indent=true&wt=json&json.facet= 
{ 
    prices: { 
     type: terms, 
     field: source_s, 
     facet: { 
      max_ingestdate: "max(timestamp_dt)"     
       } 

      } 
     } 

これは戻る:

"facets":{ 
    "count":141211, 
    "prices":{ 
     "buckets":[{ 
      "val":"a1", 
      "count":71466, 
      "max_ingestdate":1.505277283278E12}, 
     { 
      "val":"a2", 
      "count":52415, 
      "max_ingestdate":1.501872553356E12}, 
     { 
      "val":"a3", 
      "count":7866, 
      "max_ingestdate":1.504798294686E12},.... 

最終結果がでなければなりませんので、私もcorressponding価格をしたい:

"facets":{ 
"count":141211, 
"prices":{ 
    "buckets":[{ 
     "val":"a1", 
     "count":71466, 
     "max_ingestdate":1.505277283278E12, 
     "price": 1334}, 
    { 
     "val":"a2", 
     "count":52415, 
     "max_ingestdate":1.501872553356E12, 
     "price": 1234}, 
    { 
     "val":"a3", 
     "count":7866, 
     "max_ingestdate":1.504798294686E12 
     "price": 1342},... 

答えて

1

私はそれだけで一つの文書をつかむことが可能であることを確認していませんjsonファセット内では、最新の価格を使用したいと思っている場合には、セミハックを使用することができます。本質的に、あなたがやっているように、ソースによってファセットすることができますし、そのソースファセット内で一連の短時間ウィンドウで価格でクエリファセットを使用します。

http://localhost:65000/solr/listings/select?q=description_t:"Watch"&indent=on&rows=0&indent=true&wt=json&json.facet= 
    { 
     prices: { 
      type: terms, 
      field: source_s, 
      facet: { 
       max_ingestdate: "max(timestamp_dt)", 
       max_price: "max(price_d)", 
       price_1: { 
        type: query, 
        q: "timestamp_dt:[NOW-1DAY TO NOW]", 
        facet: { 
         avg_price_1: "avg(price_d)" 
        } 
       }, 
       price_2: { 
        type: query, 
        q: "timestamp_dt:[NOW-7DAY TO NOW-1DAY]", 
        facet: { 
         avg_price_2: "avg(price_d)" 
        } 
       }, 
       price_3: { 
        type: query, 
        q: "timestamp_dt:[NOW-14DAY TO NOW-7DAY]", 
        facet: { 
         avg_price_3: "avg(price_d)" 
        } 
       } 
      } 

     } 
    } 
+0

Yes.Thisこれまで最善の解決策のようになります。

Solrの呼び出しは次のようになります。 – Gayatri

+0

別の方法があるのだろうか? – Gayatri

関連する問題