https://solr.apache.org/guide/solr/latest/query-guide/other-parsers.html#terms-query-parser
The "!{terms ..." syntax is short for a query parser. Its a terms query parser and as Jan said its way more efficient than boolean clauses for a list of terms. Kevin Risden On Thu, Dec 1, 2022 at 1:04 PM Thomas Heigl <tho...@umschalt.com> wrote: > Hi Jan, > > We ran into the same issue. Terms queries sound like the ideal solution for > our use case, but I couldn't find any documentation on the {!terms} syntax. > Is there anything in the official docs? > > Best, > > Thomas > > On Thu, Dec 1, 2022 at 2:09 PM Jan Høydahl <jan....@cominvent.com> wrote: > > > Have you tried using Terms Query? It is much more efficient than many > > boolean should clauses > > > > ?q={!terms f=id}1 2 3 4...1025 > > > > Jan > > > > > 1. des. 2022 kl. 13:27 skrev michael dürr <due...@gmail.com>: > > > > > > Hi, > > > > > > today we updated solr to version 9.1 (lucene version 9.3) > > > Since then we noticed plenty of TooManyNestedClauses in the logs. Our > > > setting for maxClauseCount is 1024 > > > I played around a lot and could trace it down to this: > > > > > > * I built an index from scratch with two fields (id is unique key) and > > > luceneMatchVersion 9.3: > > > > > > <field name="id" type="string_dv" indexed="true" stored="true" > > > multiValued="false" required="true"/> > > > <field name="createdById" type="p_long_dv" indexed="true" > stored="false" > > > multiValued="false" /> > > > > > > <fieldType name="string_dv" class="solr.StrField" > sortMissingLast="true" > > > omitNorms="true" docValues="true" /> > > > fieldType name="p_long_dv" class="solr.LongPointField" docValues="true" > > > omitNorms="true" /> > > > > > > As expected this works (the dots(...) represent the complete set of > > numbers > > > up to 1024): > > > > > > curl -XGET http://localhost:8983/solr/myindex/select?q=+id:(1 2 3 ... > > 1024) > > > > > > And this fails: > > > > > > curl -XGET http://localhost:8983/solr/myindex/select?q=+id:(1 2 3 ... > > 1025) > > > > > > But when I use the other field (categoryId) this fails: > > > > > > curl -XGET http://localhost:8983/solr/myindex/select?q=+categoryId:(1 > 2 > > 3 > > > ... 1024) > > > > > > It works until 512 and starts failing from 513 clauses > > > > > > No difference when doing it like this: > > > > > > curl -XGET http://localhost:8983/solr/myindex/select?q=+(categoryId:1 > > > categoryId:2 ... categoryId:1024) > > > > > > Am I misunderstanding the limit maxClauseCount? > > > > > > I'm pretty sure that we did not have any issues with this before. > > > > > > Thanks, > > > Michael > > > > >