gpt4 book ai didi

Solr - 如何获取所有分面字段的值?

转载 作者:行者123 更新时间:2023-12-05 08:33:40 24 4
gpt4 key购买 nike

我有一个巨大的 solr 索引,其中包含约 1.500.000 个项目,我想获得所有不同的品牌。

我试过这个 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 从一个字段中获取所有不同的值吗?

谢谢!

最佳答案

如果您想获取所有品牌(假设有超过 100 个)并将它们列在 facet_fields 中,您需要设置 facet.limit到-1。在 SolrJ 中,这看起来像这样:query.setFacetLimit(-1);

From the docs :

This param indicates the maximum number of constraint counts that should be returned for the facet fields. A negative value means unlimited.

The default value is 100.

This parameter can be specified on a per field basis to indicate a separate limit for certain fields.

如果您的问题是未返回任何文档,则需要将 rows 参数设置为零以外的值。

关于Solr - 如何获取所有分面字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com