Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-140793

Multi Valued Selection field in web content is not getting indexed in Solr

Details

    Description

      Description

      Solr throws a multiple values encountered for non multiValued field error when web contents containing a multi valued selection field is saved.

      Steps to reproduce

      1. Connect a clean 7.3 bundle to Solr 8.6.2 following these instructions: https://learn.liferay.com/dxp/latest/en/using-search/installing-and-upgrading-a-search-engine/solr/installing-solr.html
      2. Navigate to Site Administration > Content & Data > Web Content > Structures and create a structure which contains a "select" field
      3. Click on the gear menu on the select field to see Settings, then set the value for "multiple" to "yes" and save the structure
      4. Create web content using the structure, select all three options, and save

      Results of Testing

      Expected Result:
      The content are saved and indexed by Solr

      Actual Results:
      Solr cannot index the content

      Errors/Logs

      Liferay Error

      ERROR [liferay/search_writer/SYSTEM_ENGINE-4][SolrIndexWriter:379] Update failed
      

      Solr error:

      ERROR (qtp489349054-16) [   x:liferay] o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: ERROR: [doc=com.liferay.journal.model.JournalArticle_PORTLET_36673] multiple values encountered for non multiValued field ddm__keyword__36665__Select1tcg_en_US_String_sortable: [value 1, value 2, value 3]
      	at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:153)
      	at org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:109)
      	at org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:981)
      	at org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:347)
      	at org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:294)
      	at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:241)
      	at org.apache.solr.update.processor.RunUpdateProcessorFactory$RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:73)
      	at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:259)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.doVersionAdd(DistributedUpdateProcessor.java:498)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.lambda$versionAdd$0(DistributedUpdateProcessor.java:339)
      	at org.apache.solr.update.VersionBucket.runWithLock(VersionBucket.java:50)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:339)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:225)
      	at org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:106)
      	at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
      	at org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:92)
      	at org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:110)
      	at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:343)
      	at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readIterator(JavaBinUpdateRequestCodec.java:291)
      	at org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:338)
      	at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:283)
      	at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readNamedList(JavaBinUpdateRequestCodec.java:244)
      	at org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:303)
      	at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:283)
      	at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:196)
      	at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:131)
      	at org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:122)
      	at org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:70)
      	at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
      	at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
      	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)
      	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2606)
      	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:815)
      	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:588)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:415)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
      	at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
      	at org.eclipse.jetty.server.Server.handle(Server.java:500)
      	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
      	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
      	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
      	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
      	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
      	at java.lang.Thread.run(Thread.java:748)
      
      

      Master

      There is no Solr 8 connector on Master.

      Branch

      Reproduced: 73x hash: df892f7f367e483ce903de507522c20e57922789

      Attachments

        Activity

          People

            brian.lee Brian Lee
            joshua.cords Joshua Cords
            Kiyoshi Lee Kiyoshi Lee
            Joshua Cords Joshua Cords
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              1 year, 27 weeks, 6 days ago
              Development End Date:
              Development Start Date:

              Packages

                Version Package
                7.3.10.3 DXP SP3
                7.3.X