: We tried to post the same manually from SOLR ADMIN / documents UI. It got
: indexed successfully.  We are sure that it's not duplicate issue. We are
: using default update handler and doesn't configure for custom one. We fire
: the request to index using direct HTTP request using <add> <doc> XML
: format. We are getting 200 OK response. But not getting indexed.
: 
: This is the request we fired and got 200. But not getting indexed. Same
: request fired via SOLR ADMIN / Document UI, it's getting indexed
: successfully.
: <add>
: <doc>
: <CT_iscof>false</CT_iscof>
: <CT_ui116_s>55788327</CT_ui116_s>
:       ...

... hold on, let's back up here -- the XML you've provided is not in any 
format that solr understands natively at all -- what are these "CT_foo" 
xml tags?  are these intended to be the final field names?

If so, and if this type of XML document is working for you *sometimes*, 
then you definitely have something non standard in your document pipeline 
that's handling the XML parsing and then handing the documents to Solr -- 
either a proxy in between you and solr, or perhaps a custom update 
processor or a custom RequestHandler .... nothing in SOLR would be able to 
parse that XML in a sane way.

So please tell us more about your system, and how you index documents, and 
all of your configs, etc...

        https://wiki.apache.org/solr/UsingMailingLists

...in particular, please show us your solrconfig.xml and a sample "curl" 
command for indexing a document, and the output of that curl command when 
using --dump-header.


With that said, Let's back up some more and look at those logs you posted...

> All documents POST are seen in the localhost_access and 200 OK response 
> is seen in local host access file. But in catalina, there are some 
> difference in the logs for which are indexing properly, following is the logs.
> 
> FINE: PRE_UPDATE add
> {,id=CUA0000004390000019223370564139207241C3LEA0000020769223370567404392838EXCC3000001}
> params(crid=CUA0000004390000019223370564139207241C3LEA0000020769223370567404392838EXCC3000001),defaults(wt=xml)
>  ...
> org.apache.solr.update.processor.LogUpdateProcessor finish
> INFO: [IOB_shard1_replica1] webapp=/solr path=/update params=
> {crid=CUA0000004390000019223370564139207241C3LEA0000020769223370567404392838EXCC3000001}
> {add=[CUA0000004390000019223370564139207241C3LEA0000020769223370567404392838EXCC3000001
>  
> (1544254202941800448)]}
>  ...

...your copy paste cut off the important bit at the begining about what 
method was logging that PRE_UPDATE, but it's not really critical for 
analysis: what matters is that the LogUpdateProcessor reports that it's 
processing an "add" of "id=CUA000000..." which has a "crid=CUA00000" 
request param (which is not something solr cares about, but is something 
your software is sending which contains the same value as the uniqueKey of 
the document) and then later it loggs that it finished processing the 
request which included one "add" ... if the request had included multiple 
update operations (ie: multiple adds, or adds mixed with deletes, or a 
commit) then LogUpdateProcessor would have recorded a PRE_UPDATE for each 
of them, but only one "finish" sumarising all of them.

Now let's look at your next log snipped...

> For the one which document is not getting indexed, we could see only 
> following log in catalina.out. Not sure whether it's getting added to SOLR.
> 
> Sep 01, 2016 7:39:56 AM org.apache.solr.update.processor.LogUpdateProcessor 
> finish
> FINE: PRE_UPDATE FINISH 
> params(crid=CUA0000004390000019223370564139182810C3LEA0000020179223370567061972057EXCC1000002),defaults(wt=xml)
> Sep 01, 2016 7:39:56 AM org.apache.solr.update.processor.LogUpdateProcessor 
> finish
> INFO: [IOB_shard1_replica1] webapp=/solr path=/update 
> params={crid=CUA0000004390000019223370564139182810C3LEA0000020179223370567061972057EXCC1000002}
>  
> {} 0 1
>  ...

If that's really every thing in your log for the request that doesn't 
work, then what that tells us is that a request was sent to the /update 
handler which did not contain any udpate commands -- ie: no documents to 
add, no deletes, no commit, etc...  that's why there are no "PRE_UPDATE 
add" log messages, and no ids listed in the "finish" log message.

that's the logs i would expect to see from something like this curl 
request -- which triggers the update handler with a request to do 
nothing...

curl --dump-header - -H 'Content-Type: application/json' 
http://localhost:8983/solr/techproducts/update --data-binary '[]'
HTTP/1.1 200 OK
Content-Type: text/plain;charset=utf-8
Content-Length: 42

{"responseHeader":{"status":0,"QTime":0}}



-Hoss
http://www.lucidworks.com/

Reply via email to