2016-05-05 2 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?

Спасибо!

+0

он не будет показывать никаких результатов, если вы укажете строки = 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:

Это указует на то пары максимального числа ограничений считает, что должны быть возвращены для полой огранки. Отрицательное значение означает без ограничений.

Значение по умолчанию равно 100.

Этот параметр может быть определен на основе для каждого поля, чтобы указать отдельный предел для определенных полей.

Если ваша проблема не возвращается, параметр rows должен быть установлен в значение, отличное от нуля.

+0

Спасибо! facet.limit была моей проблемой. Все работает после установки на -1 (выберите /? Q = * & rows = 0 & facet = on & facet.field = brand & facet.limit = -1) – mihutz

Смежные вопросы