Atomic Update Failures with Nested Schema and Lazy Field Loading

2021-01-05 Thread Nussbaum, Ronen
Hi,

I've encountered another issue that might be related to nested schema.
Not always, but many times atomic updates fails for some shards with the 
message "TransactionLog doesn't know how to serialize class 
org.apache.lucene.document.LazyDocument$LazyField".
The client retrieves documents, constructs bulk of input documents (id and 
changed field), adds the bulk and finally sends an explicit commit.
I checked both options:

  1.  Set false.
  2.  Set true but removed 
child documents.
In both cases atomic update worked without any errors.
This might suggest that there is an issue with this combination.

Thanks in advance,
Ronen.



This electronic message may contain proprietary and confidential information of 
Verint Systems Inc., its affiliates and/or subsidiaries. The information is 
intended to be for the use of the individual(s) or entity(ies) named above. If 
you are not the intended recipient (or authorized to receive this e-mail for 
the intended recipient), you may not use, copy, disclose or distribute to 
anyone this message or any information contained in this message. If you have 
received this electronic message in error, please notify us by replying to this 
e-mail.


Re: No Live server exception: Solr Cloud 6.6.6

2021-01-05 Thread Ritvik Sharma
Hi Guys,

Any update.

On Tue, 5 Jan 2021 at 18:06, Ritvik Sharma  wrote:

> Hi Guys
>
> Happy New Year.
>
> We are trying to move to solr cloud 6.6.6 as we are using same version
> master-slave arch.
>
> solr cloud: 6.6.6
> zk: 3.4.10
>
>  We are facing few errors
> 1. Every time we upload a model-store using curl XPUT command , it is
> showing at that time but after reloading collection , it is removed
> automatically.
>
> 2.While querying the data, we are getting below exception,
>
> "msg": "org.apache.solr.client.solrj.SolrServerException: No live
> SolrServers available to handle this request:[
> http://x.x.x.x:8983/solr/solrcollection_shard1_replica2,
> http://x.x.x.y:8983/solr/solrcollection_shard1_replica1]","trace": 
> "org.apache.solr.common.SolrException:
> org.apache.solr.client.solrj.SolrServerException: No live SolrServers
> available to handle this request:[
> http://x.x.x.x:8983/solr/solrcollection_shard1_replica2,
> http://x.x.x.y:8983/solr/solrcollection_shard1_replica1]\n\tat
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:416)\n\tat
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)\n\tat
> org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)\n\tat
> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:724)\n\tat
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:530)\n\tat
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)\n\tat
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)\n\tat
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)\n\tat
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)\n\tat
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\n\tat
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\n\tat
>
>
>
>
>


How pull replica works

2021-01-05 Thread Abhishek Mishra
I want to know how pull replica replicate from leader in real? Does
internally admin API get data from the leader in form of batches?

Regards,
Abhishek


Re: maxBooleanClauses change in solr.xml not reflecting in solr 8.4.1

2021-01-05 Thread Shawn Heisey

On 1/5/2021 8:26 AM, dinesh naik wrote:

Hi all,
I want to update the maxBooleanClauses to 2048 (from default value 1024).
Below are the steps tried:
1. updated solrconfig.xml :
${solr.max.booleanClauses:2048}


You need to update EVERY solrconfig.xml that the JVM is loading for this 
to actually work.


maxBooleanClauses is an odd duck.  At the Lucene level, where this 
matters, it is a global (JVM-wide) variable.  So whenever Solr sets this 
value, it applies to ALL of the Lucene indexes that are being accessed 
by that JVM.


When you havet multiple Solr cores, the last core that was loaded will 
set the max clauses value for ALL cores.  If any of your solrconfig.xml 
files don't have that config, then it will be set to the default of 1024 
when that core is loaded or reloaded.  Leaving the config out is not a 
solution.


So if any of your configs don't have the setting or set it to something 
lower than you need, you run the risk of having the max value 
incorrectly set across the board.


Here are the ways that I think this could be fixed:

1) Make the value per-index in Lucene, (or maybe even per-query) instead 
of global.
2) Have Solr only change the global Lucene value if the config is 
*higher* than the current global value.
3) Eliminate the limit entirely.  Remove the config option from Solr and 
have Solr hard-set it to the maximum value.

4) Move the maxBooleanClauses config to solr.xml instead of solrconfig.xml

I think that option 1 is the best way to do it, but this problem has 
been around for many years, so it's probably not easy to do.  I don't 
think it's going to happen.  There are a number of existing issues in 
the Solr bug tracker for changing how the limit is configured.



2. updated  solr.xml :
${solr.max.booleanClauses:2048}


I don't think it's currently possible to set the value with solr.xml.

Thanks,
Shawn


Re: maxBooleanClauses change in solr.xml not reflecting in solr 8.4.1

2021-01-05 Thread ANNAMANENI RAVEENDRA
I experienced the same thing in solr-8.7 , it worked for me using system
property.

Set system property in solr.in.sh file


On Tue, Jan 5, 2021 at 8:58 PM dinesh naik 
wrote:

> Hi all,
> I want to update the maxBooleanClauses to 2048 (from default value 1024).
> Below are the steps tried:
> 1. updated solrconfig.xml :
> ${solr.max.booleanClauses:2048}
>
> 2. updated  solr.xml :
> ${solr.max.booleanClauses:2048}
>
> 3. Restarted the solr nodes.
>
> 4. Tried query with more than 2000 OR clauses and getting below waring
> message in solr logs:
>
> 2021-01-05 14:03:59.603 WARN  (qtp1545077099-27) x:col1_shard1_replica_n3
> o.a.s.c.SolrConfig solrconfig.xml:  of 2048 is greater
> than global limit of 1024 and will have no effect
>
> 2021-01-05 14:03:59.603 WARN  (qtp1545077099-27) x:col1_shard1_replica_n3
> o.a.s.c.SolrConfig set 'maxBooleanClauses' in solr.xml to increase global
> limit
>
> Note: In 7.6.1 version we just need to change the solrconfig.xml and it
> works.
>
> Kindly let me know if i am missing something for making it work in 8.4.1
> version.
> --
> Best Regards,
> Dinesh Naik
>


Re: Identifying open segments.

2021-01-05 Thread Ilan Ginzburg
Are you trying to copy the index by an external process not running in
the Solr JVM? I believe this is risky if the Solr JVM is running at
the same time. For example segments can be deleted by Solr.
There might also be closed segments that you do not need but that are
still on the disk (no longer part of the current commit point).

You could look at backup options in Solr, I believe they basically do
what you need (I'm not familiar with what's available but I'm sure you
can find the info).

Ilan


On Tue, Jan 5, 2021 at 12:46 PM Jacob Ward  wrote:
>
> Hello,
>
> I am looking for a way to identify the open segment files in a lucene
> index, so that I can export only the closed segments (and the segmentsN
> file). My current ideas are:
>
> - Ignore any segment files newer than the segmentsN file.
> OR
> - Open the segmentsN file using Lucene core's SegmentInfos class (which I
> presume would allow me to identify which are the closed segments).
>
> Could anyone provide suggestions on how to do this best? Ideally I'd like
> to do this without the SegmentInfos class if there is a suitable method.
>
> Thanks.
>
> --
>
> Jacob Ward|Graduate Data Infrastructure Engineer
>
> jw...@brandwatch.com
>
>
> NEW YORK   | BOSTON   | BRIGHTON   | LONDON   | BERLIN |   STUTTGART |
> PARIS   | SINGAPORE | SYDNEY


Re:Possible bug on LTR when using solr 8.6.3 - index out of bounds DisiPriorityQueue.add(DisiPriorityQueue.java:102)

2021-01-05 Thread Christine Poerschke (BLOOMBERG/ LONDON)
Hello Florin Babes,

Thanks for this detailed report! I agree you experiencing 
ArrayIndexOutOfBoundsException during SolrFeature computation sounds like a 
bug, would you like to open a SOLR JIRA issue for it?

Here's some investigative ideas I would have, in no particular order:

Reproducibility: if a failed query is run again, does it also fail second time 
around (when some caches may be used)?

Data as a factor: is your setup single-sharded or multi-sharded? in a 
multi-sharded setup if the same query fails on some shards but succeeds on 
others (and all shards have some documents that match the query) then this 
could support a theory that a certain combination of data and features leads to 
the exception.

Feature vs. Model: you mention use of a MultipleAdditiveTrees model, if the 
same features are used in a LinearModel instead, do the same errors happen? or 
if no model is used but only feature extraction is done, does that give errors?

Identification of the troublesome feature(s): narrowing down to a single 
feature or a small combination of features could make it easier to figure out 
the problem. assuming the existing logging doesn't identify the features, 
replacing the org.apache.solr.ltr.feature.SolrFeature with a 
com.mycompany.solr.ltr.feature.MySolrFeature containing instrumentation could 
provide insights e.g. the existing code [2] logs feature names for 
UnsupportedOperationException and if it also caught 
ArrayIndexOutOfBoundsException then it could log the feature name before 
rethrowing the exception.

Based on your detail below and this [3] conditional in the code probably at 
least two features will be necessary to hit the issue, but for investigative 
purposes two features could still be simplified potentially to effectively one 
feature e.g. if one feature is a SolrFeature and the other is a ValueFeature or 
if featureA and featureB are both SolrFeature features with _identical_ 
parameters but different names.

Hope that helps.

Regards,

Christine

[1] 
https://lucene.apache.org/solr/guide/8_6/learning-to-rank.html#extracting-features
[2] 
https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.6.3/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java#L243
[3] 
https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.6.3/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java#L520-L525

From: solr-user@lucene.apache.org At: 01/04/21 17:31:44To:  
solr-user@lucene.apache.org
Subject: Possible bug on LTR when using solr 8.6.3 - index out of bounds 
DisiPriorityQueue.add(DisiPriorityQueue.java:102)

Hello,
We are trying to update Solr from 8.3.1 to 8.6.3. On Solr 8.3.1 we are
using LTR in production using a MultipleAdditiveTrees model. On Solr 8.6.3
we receive an error when we try to compute some SolrFeatures. We didn't
find any pattern of the queries that fail.
Example:
We have the following query raw parameters:
q=lg cx 4k oled 120 hz -> just of many examples
term_dq=lg cx 4k oled 120 hz
rq={!ltr model=model reRankDocs=1000 store=feature_store
efi.term=${term_dq}}
defType=edismax,
mm=2<75%
The features are something like this:
{
  "name":"similarity_query_fileld_1",
  "class":"org.apache.solr.ltr.feature.SolrFeature",
  "params":{"q":"{!dismax qf=query_field_1 mm=1}${term}"},
  "store":"feature_store"
},
{
  "name":"similarity_query_field_2",
  "class":"org.apache.solr.ltr.feature.SolrFeature",
  "params":{"q":"{!dismax qf=query_field_2 mm=5}${term}"},
  "store":"feature_store"
}

We are testing ~6300 production queries and for about 1% of them we receive
that following error message:
"metadata":[
  "error-class","org.apache.solr.common.SolrException",
  "root-error-class","java.lang.ArrayIndexOutOfBoundsException"],
"msg":"java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds
for length 2",

The stacktrace is :
org.apache.solr.common.SolrException:
java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
at org.apache.solr.search.ReRankCollector.topDocs(ReRankCollector.java:154)
at
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:159
9)
at
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1413
)
at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:596)
at
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryC
omponent.java:1513)
at
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:403
)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.
java:360)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java
:214)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2627)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:795)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:568)
at

maxBooleanClauses change in solr.xml not reflecting in solr 8.4.1

2021-01-05 Thread dinesh naik
Hi all,
I want to update the maxBooleanClauses to 2048 (from default value 1024).
Below are the steps tried:
1. updated solrconfig.xml :
${solr.max.booleanClauses:2048}

2. updated  solr.xml :
${solr.max.booleanClauses:2048}

3. Restarted the solr nodes.

4. Tried query with more than 2000 OR clauses and getting below waring
message in solr logs:

2021-01-05 14:03:59.603 WARN  (qtp1545077099-27) x:col1_shard1_replica_n3
o.a.s.c.SolrConfig solrconfig.xml:  of 2048 is greater
than global limit of 1024 and will have no effect

2021-01-05 14:03:59.603 WARN  (qtp1545077099-27) x:col1_shard1_replica_n3
o.a.s.c.SolrConfig set 'maxBooleanClauses' in solr.xml to increase global
limit

Note: In 7.6.1 version we just need to change the solrconfig.xml and it
works.

Kindly let me know if i am missing something for making it work in 8.4.1
version.
-- 
Best Regards,
Dinesh Naik


No Live server exception: Solr Cloud 6.6.6

2021-01-05 Thread Ritvik Sharma
Hi Guys

Happy New Year.

We are trying to move to solr cloud 6.6.6 as we are using same version
master-slave arch.

solr cloud: 6.6.6
zk: 3.4.10

 We are facing few errors
1. Every time we upload a model-store using curl XPUT command , it is
showing at that time but after reloading collection , it is removed
automatically.

2.While querying the data, we are getting below exception,

"msg": "org.apache.solr.client.solrj.SolrServerException: No live
SolrServers available to handle this request:[
http://x.x.x.x:8983/solr/solrcollection_shard1_replica2,
http://x.x.x.y:8983/solr/solrcollection_shard1_replica1]","trace":
"org.apache.solr.common.SolrException:
org.apache.solr.client.solrj.SolrServerException: No live SolrServers
available to handle this request:[
http://x.x.x.x:8983/solr/solrcollection_shard1_replica2,
http://x.x.x.y:8983/solr/solrcollection_shard1_replica1]\n\tat
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:416)\n\tat
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)\n\tat
org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)\n\tat
org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:724)\n\tat
org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:530)\n\tat
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)\n\tat
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)\n\tat
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)\n\tat
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\n\tat
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\n\tat


Identifying open segments.

2021-01-05 Thread Jacob Ward
Hello,

I am looking for a way to identify the open segment files in a lucene
index, so that I can export only the closed segments (and the segmentsN
file). My current ideas are:

- Ignore any segment files newer than the segmentsN file.
OR
- Open the segmentsN file using Lucene core's SegmentInfos class (which I
presume would allow me to identify which are the closed segments).

Could anyone provide suggestions on how to do this best? Ideally I'd like
to do this without the SegmentInfos class if there is a suitable method.

Thanks.

-- 

Jacob Ward|Graduate Data Infrastructure Engineer

jw...@brandwatch.com


NEW YORK   | BOSTON   | BRIGHTON   | LONDON   | BERLIN |   STUTTGART |
PARIS   | SINGAPORE | SYDNEY


Sending compressed (gzip) UpdateRequest with SolrJ

2021-01-05 Thread Gael Jourdan-Weil
Hello,

I was wondering if someone ever had the need to send compressed (gzip) update 
requests (adding/deleting documents), especially using SolrJ.

Somehow I expected it to be done by default, but didn't find any documentation 
about it and when looking at the code it seems there is no option to do it. Or 
is javabin compressed by default?
- 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BinaryRequestWriter.java#L49
- 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/request/RequestWriter.java#L55
 (if not using Javabin)
- 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java#L587

By the way, is there any documentation about javabin? I could only find one on 
the "old wiki".

Thanks,
Gaƫl