2016-05-05 10 views
0

私は巨額のsolr〜1.500.000の商品を持っています。私はすべてのブランドを手に入れたいと思います。Solr - ファセットフィールドの値をすべて取得する方法?

私はこれを試しましたsolrクエリ: select/?q=*&rows=0&facet=on&facet.field=brandただし、すべてのブランドが表示されているわけではありません。

Solrの応答:

<response> 
    <lst name="responseHeader"> 
     <int name="status">0</int> 
     <int name="QTime">39</int> 
     <lst name="params"> 
      <str name="facet">on</str> 
      <str name="facet.mincount">0</str> 
      <str name="q">*</str> 
      <str name="facet.field">brand</str> 
      <str name="rows">0</str> 
     </lst> 
    </lst> 
    <result name="response" numFound="1520444" start="0"/> 
    <lst name="facet_counts"> 
     <lst name="facet_queries"/> 
     <lst name="facet_fields"> 
      <lst name="brand"> 
       <int name=" ">51099</int> 
       <int name="Blancheporte">11269</int> 
       <int name="Ama Fashion">8254</int> 
       <int name="Heine">7026</int> 
       <int name="Kolok">6874</int> 
       <int name="Knecht">6836</int> 
       <int name="JoyJoy">6139</int> 
       <int name="MyDressing">5418</int> 
       <int name="Widmann Italia">5310</int> 
       <int name="modlet">4476</int> 
       <int name="Mann-Filter">4243</int> 
       <int name="Daniel Klein">4033</int> 
       <int name="LEGO">4002</int> 
       <int name="Casio">3887</int> 
       <int name="Canon">3706</int> 
       <int name="Generic">3641</int> 
       <int name="HP">3608</int> 
       <int name="PUMA">3593</int> 
       <int name="Nespecificat">3552</int> 
       <int name="YATO">3421</int> 
       <int name="Philips">3397</int> 
       <int name="Polirom">3320</int> 
       <int name="LE COQ SPORTIF">3154</int> 
       <int name="Bullyland">3056</int> 
       <int name="PIATRAONLINE.RO">2863</int> 
       <int name="Ravensburger">2775</int> 
       <int name="Samsung">2612</int> 
       <int name="Zambirici">2612</int> 
       <int name="ASUS">2579</int> 
       <int name="Humanitas">2536</int> 
       <int name="MyKids">2485</int> 
       <int name="""">2484</int> 
       <int name="QQ">2467</int> 
       <int name="Chipolino">2441</int> 
       <int name="VOREL">2386</int> 
       <int name="Disney">2367</int> 
       <int name="Bosch">2287</int> 
       <int name="Kingston">2259</int> 
       <int name="Litera">2255</int> 
       <int name="Dell">2122</int> 
       <int name="Corsair">2116</int> 
       <int name="Lenovo">2057</int> 
       <int name="RAO">2054</int> 
       <int name="Mango">2049</int> 
       <int name=""">2043</int> 
       <int name="Playmobil">2003</int> 
       <int name="Melissa & Doug">1995</int> 
       <int name="BOOKCITY">1985</int> 
       <int name="Epson">1980</int> 
       <int name="SAMSUNG">1961</int> 
       <int name="Meli Melo - Paris">1932</int> 
       <int name="Moje Bambino">1917</int> 
       <int name="Mattel">1906</int> 
       <int name="Q-Hausmarke">1875</int> 
       <int name="Mahle&nbsp;Original">1856</int> 
       <int name="Purflux">1844</int> 
       <int name="Orient">1763</int> 
       <int name="Triumph">1739</int> 
       <int name="THEICONIC">1731</int> 
       <int name="Michelin ">1721</int> 
       <int name="Vero Moda">1694</int> 
       <int name="Pirelli ">1681</int> 
       <int name="Marko">1679</int> 
       <int name="Lorelli">1674</int> 
       <int name="Peg Perego">1646</int> 
       <int name="Hengst&nbsp;Filter">1642</int> 
       <int name="Trendzilla">1612</int> 
       <int name="Hasbro">1611</int> 
       <int name="Brother">1552</int> 
       <int name="Baby Mix">1540</int> 
       <int name="Adidas">1526</int> 
       <int name="Brevi">1517</int> 
       <int name="oteros">1511</int> 
       <int name="Continental ">1500</int> 
       <int name="Microsoft">1492</int> 
       <int name="PEPE JEANS">1480</int> 
       <int name="Bertoni-Lorelli">1465</int> 
       <int name="Sony">1464</int> 
       <int name="R essentiel">1452</int> 
       <int name="Trespass">1420</int> 
       <int name="Hauck">1418</int> 
       <int name="Clementoni">1409</int> 
       <int name="Revell">1390</int> 
       <int name="Miniland">1388</int> 
       <int name="Floria">1366</int> 
       <int name="Sense">1338</int> 
       <int name="Lexmark">1332</int> 
       <int name="Altii">1317</int> 
       <int name="Salomon ">1296</int> 
       <int name="Hewlett Packard">1295</int> 
       <int name="SAMSUNG ">1290</int> 
       <int name="D-Mail">1283</int> 
       <int name="Make-up Studio PROFESSIONAL">1253</int> 
       <int name="Panasonic">1251</int> 
       <int name="Zara">1243</int> 
       <int name="Gigabyte">1237</int> 
       <int name="Trei">1233</int> 
       <int name="Tommy Hilfiger">1227</int> 
       <int name="Divisima">1219</int> 
       <int name="Bright Starts">1214</int> 
      </lst> 
     </lst> 
     <lst name="facet_dates"/> 
     <lst name="facet_ranges"/> 
     <lst name="facet_intervals"/> 
     <lst name="facet_heatmaps"/> 
    </lst> 
</response> 

私は限界があると思います。..または私はそれらを取得しようとしています方法が間違っています。

solrを使用して、1つのフィールドからすべての異なる値を取得する方法を知っていますか?

ありがとうございます!

+0

rows = 0と指定すると結果は表示されません。正確なsolrクエリ要求を投稿できますか? – vinod

+0

select /?q = *&rows = 0&facet = on&facet.field = brand - 問合せには、行を表示するのではなく、ファセットフィールドの結果のみを表示します。この問合せを使用して問題を解決しました。select /?q = *&rows = 0&facet = on&facet.field = brand&facet.limit = -1ありがとうございました! – mihutz

答えて

7

すべてのブランドを取得したい場合(100を超えると仮定して)、facet_fieldsにリストされている場合は、facet.limitを-1に設定する必要があります。 SolrJでは、これは次のようになります:query.setFacetLimit(-1);

From the docs

このparamは制約の最大数を示しますが は、ファセットフィールドに返されるべきであることをカウントします。負の値は、無制限の を意味します。

デフォルト値は100

このパラメータは、特定のフィールドの 別々の限界を示すために、フィールドごとに指定することが可能です。

ドキュメントが返されない場合は、rowsパラメータを0以外の値に設定する必要があります。

+0

ありがとう! facet.limitが私の問題でした。すべてが-1に設定された後に動作しています(/?q = *&rows = 0&facet = on&facet.field = brand&facet.limit = -1を選択) – mihutz

関連する問題