2016-08-26 9 views
2

私はSolrにはかなり新しいので、実現したいものが実際に実現可能かどうかはわかりません。 現在、私はいくつかのファセットクエリの条件に一致する結果の量を取得するために私のSolrに問い合わせています。Solrファセットの結果を取得

{ 
    "responseHeader": { 
    "status": 0, 
    "QTime": 239, 
    "params": { 
     "facet.query": [ 
     "dict1:\"#tiger#\"", 
     "dict1:\"#lion#\"" 
     ], 
     "q": "*:*", 
     "indent": "true", 
     "rows": "0", 
     "wt": "json", 
     "facet": "true" 
    } 
    }, 
    "response": { 
    "numFound": 37278987, 
    "start": 0, 
    "docs": [ ] 
    }, 
    "facet_counts": { 
    "facet_queries": { 
     "dict1:\"#tiger#\"": 6, 
     "dict1:\"#lion#\"": 10 
    }, 
    [...] 
    } 
} 
:、私はフィールド「dict1」で、「虎」と、それらのcointaining「ライオン」のカウントを含むSolrのドキュメントの数を取得しています、クエリのこの種の

localhost:8082/solr/dict/select?q=*:*&rows=0&wt=json&indent=true&facet=true&facet.query=dict1:"#tiger#"&facet.query=dict1:"#lion#" 

:たとえば

これで、カウントとは別に、それぞれのファセットについていくつかの結果を得る必要があるということです(たとえば、「虎」の3つの結果と「ライオン」の3つの結果)

私はいくつかの同様の質問(Solr Facetting - Showing First 10 results and OtherまたはSOLR - Querying Facets, return N results per Facet)が、私のすべての文書(q=*:*)でファセットを実行している可能性があります。

助けを歓迎します:)

+0

? – MatsLindh

+0

私の検索は\ *:\ *ですので、すべてのエントリに "tiger"または "lion"と一致するファセットを実行しています。最後のリンクに記載されているストラテジは、 "例えば、私が "dict1:tiger"と照会して、2番目のリンクのようにグループフィルタリングを追加すると、それはうまくいくが、望ましいアプローチではない。 – motagirl2

答えて

1

メーリングリストごとに、単にグループ化を使用するのはどうですか?

solr/hotels/search?q=*%3A*&wt=json&indent=true&group=true&group.query=query1&group.query=query2&group.limit=3 [1] 

これはあなたの大丈夫ですか?これにより、関連するカウントと最大文書数の2つのグループ(クエリごとに1つ)が返されます。

[1]私はあなたのケースは、あなたが含まれる最後のリンクで説明したグループ戦略とどのように異なるのかわからないんだけどhttps://cwiki.apache.org/confluence/display/solr/Result+Grouping

+0

ありがとう!私は望む通りに結果を得ることができます:/select?q=*:*&wt=json&indent=true&facet=true&group=true&group.query=dict1:tiger&group.query=dict1:lion&group.limit=2 唯一のことは、クエリは超低速です:/(0秒から2秒まで) – motagirl2