lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Noble Paul (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-12798) Structural changes in SolrJ since version 7.0.0 have effectively disabled multipart post
Date Fri, 28 Sep 2018 04:34:00 GMT

    [ https://issues.apache.org/jira/browse/SOLR-12798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16631337#comment-16631337
] 

Noble Paul commented on SOLR-12798:
-----------------------------------


An ideal solution would be
* Be able to construct a SolrInputDocument with a binary payload + metadata parameters for
that doc
* When this is sent to Solr, SolrJ should sent the payload+parameters in the body
* This ensures that the query string length is always constant
* This also helps in inter-node communication where the documents are sent between replicas

I'm not sure if we can achieve this without some changes at the server side too. Meanwhile
we may need a custom HttpSolrClient implementation that can do a multipart request

> Structural changes in SolrJ since version 7.0.0 have effectively disabled multipart post
> ----------------------------------------------------------------------------------------
>
>                 Key: SOLR-12798
>                 URL: https://issues.apache.org/jira/browse/SOLR-12798
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrJ
>    Affects Versions: 7.4
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>            Priority: Major
>         Attachments: HOT Balloon Trip_Ultra HD.jpg, SOLR-12798-approach.patch, SOLR-12798-reproducer.patch,
no params in url.png, solr-update-request.txt
>
>
> Project ManifoldCF uses SolrJ to post documents to Solr.  When upgrading from SolrJ 7.0.x
to SolrJ 7.4, we encountered significant structural changes to SolrJ's HttpSolrClient class
that seemingly disable any use of multipart post.  This is critical because ManifoldCF's documents
often contain metadata in excess of 4K that therefore cannot be stuffed into a URL.
> The changes in question seem to have been performed by Paul Noble on 10/31/2017, with
the introduction of the RequestWriter mechanism.  Basically, if a request has a RequestWriter,
it is used exclusively to write the request, and that overrides the stream mechanism completely.
 I haven't chased it back to a specific ticket.
> ManifoldCF's usage of SolrJ involves the creation of ContentStreamUpdateRequests for
all posts meant for Solr Cell, and the creation of UpdateRequests for posts not meant for
Solr Cell (as well as for delete and commit requests).  For our release cycle that is taking
place right now, we're shipping a modified version of HttpSolrClient that ignores the RequestWriter
when dealing with ContentStreamUpdateRequests.  We apparently cannot use multipart for all
requests because on the Solr side we get "pfountz Should not get here!" errors on the Solr
side when we do, which generate HTTP error code 500 responses.  That should not happen either,
in my opinion.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message