Hi Jan, thanks! That helped :-)
On Fri, Dec 2, 2022 at 8:47 AM Jan Høydahl <jan....@cominvent.com> wrote: > A plain q=id:(a b c) is parsed into a boolean query with three SHOULD > clauses, i.e. OR. Try to add &debugQuery=true to a request and see how it > gets parsed. Then if the limit is 1024 you'll get errors above. > > Jan > > > 2. des. 2022 kl. 07:43 skrev michael dürr <due...@gmail.com>: > > > > Thanks to all of you for your advice on using the terms query! I wasn't > > aware of this syntax until now. > > > > Anyways it would be good to know whether I hit a bug or not. > > Are my example queries probably rewritten to something that has more > > boolean clauses? > > If so, why doesn't that apply to the query for the unique key field? > > > > Maybe someone can give some insights here? > > > > Thanks, > > Michael > > > > On Thu, Dec 1, 2022 at 7:45 PM Kevin Risden <kris...@apache.org> wrote: > > > >> > >> > 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 > >>>> > >>>> > >>> > >> > >