IMO enableLazyFieldLoading is a small optimization for most apps.  It saves
memory in the document cache at the expense of increased latency if your
usage pattern wants a field later that wasn't requested earlier.  You'd
probably need detailed metrics/benchmarks to observe a difference, and you
might reach a conclusion that enableLazyFieldLoading is best at "false" for
you irrespective of the bug.  I suspect it may have been developed for
particularly large document use-cases where you don't normally need some
large text fields for retrieval/highlighting.  For example imagine if you
stored the entire input data as JSON in a _json_ field or some-such.
Nowadays, I'd set large="true" on such a field, which is a much newer
option.

I was able to tweak my test to have only alphabetic IDs, and the test still
failed.  I don't see how the ID's contents/format could cause any effect.

~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley


On Thu, Feb 18, 2021 at 5:04 AM Nussbaum, Ronen <ronen.nussb...@verint.com>
wrote:

> You're right, I was able to reproduce it too without highlighting.
> Regarding the existing bug, I think there might be an additional issue
> here because it happens only when id field contains an underscore (didn't
> check for other special characters).
> Currently I have no other choice but to use enableLazyFieldLoading=false.
> I hope it wouldn't have a significant performance impact.
>
> -----Original Message-----
> From: David Smiley <dsmi...@apache.org>
> Sent: יום ה 18 פברואר 2021 01:03
> To: solr-user <solr-user@lucene.apache.org>
> Subject: Re: Atomic Update (nested), Unified Highlighter and Lazy Field
> Loading => Invalid Index
>
> I think the issue is this existing bug, but needs to refer to
> toSolrInputDocument instead of toSolrDoc:
> https://issues.apache.org/jira/browse/SOLR-13034
> Highlighting isn't involved; you just need to somehow get a document
> cached with lazy fields.  In a test I was able to do this simply by doing a
> query that only returns the "id" field.  No highlighting.
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>
>
> On Wed, Feb 17, 2021 at 10:28 AM David Smiley <dsmi...@apache.org> wrote:
>
> > Thanks for more details.  I was able to reproduce this locally!  I
> > hacked a test to look similar to what you are doing.  BTW it's okay to
> > fill out a JIRA imperfectly; they can always be edited :-).  Once I
> > better understand the nature of the bug today, I'll file an issue and
> respond with it here.
> >
> > ~ David Smiley
> > Apache Lucene/Solr Search Developer
> > http://www.linkedin.com/in/davidwsmiley
> >
> >
> > On Wed, Feb 17, 2021 at 6:36 AM Nussbaum, Ronen
> > <ronen.nussb...@verint.com>
> > wrote:
> >
> >> Hello David,
> >>
> >> Thank you for your reply.
> >> It was very hard but finally I discovered how to reproduce it. I
> >> thought of issuing an issue but wasn't sure about the components and
> priority.
> >> I used the "tech products" configset, with the following changes:
> >> 1. Added <field name="_nest_path_" type="_nest_path_" /><fieldType
> >> name="_nest_path_" class="solr.NestPathField" /> 2. Added <field
> >> name="text_en" type="text_en" indexed="true"
> >> stored="true" termVectors="true" termOffsets="true" termPositions="true"
> >> required="false" multiValued="true" /> Than I inserted one document
> >> with a nested child e.g.
> >> {id:"abc_1", utterances:{id:"abc_1-1", text_en:"Solr is great"}}
> >>
> >> To reproduce:
> >> Do a search with surround and unified highlighter:
> >>
> >> hl.fl=text_en&hl.method=unified&hl=on&q=%7B!surround%7Dtext_en%3A4W("
> >> solr"%2C"great")
> >>
> >> Now, try to update the parent e.g. {id:"abc_1", categories_i:{add:1}}
> >>
> >> Important: it happens only when "id" contains underscore characters!
> >> If you'll use "abc-1" it would work.
> >>
> >> Thanks in advance,
> >> Ronen.
> >>
> >> -----Original Message-----
> >> From: David Smiley <dsmi...@apache.org>
> >> Sent: יום א 14 פברואר 2021 19:17
> >> To: solr-user <solr-user@lucene.apache.org>
> >> Subject: Re: Atomic Update (nested), Unified Highlighter and Lazy
> >> Field Loading => Invalid Index
> >>
> >> Hello Ronen,
> >>
> >> Can you please file a JIRA issue?  Some quick searches did not turn
> >> anything up.  It would be super helpful to me if you could list a
> >> series of steps with Solr out-of-the-box in 8.8 including what data
> >> to index and query.  Solr already includes the "tech products" sample
> >> data; maybe that can illustrate the problem?  It's not clear if
> >> nested schema or nested docs are actually required in your example.
> >> If you share the JIRA issue with me, I'll chase this one down.
> >>
> >> ~ David Smiley
> >> Apache Lucene/Solr Search Developer
> >> http://www.linkedin.com/in/davidwsmiley
> >>
> >>
> >> On Sun, Feb 14, 2021 at 11:16 AM Ronen Nussbaum <rone...@gmail.com>
> >> wrote:
> >>
> >> > Hi All,
> >> >
> >> > I discovered a strange behaviour with this combination.
> >> > Not only the atomic update fails, the child documents are not
> >> > properly indexed, and you can't use highlights on their text
> >> > fields. Currently there is no workaround other than reindex.
> >> >
> >> > Checked on 8.3.0, 8.6.1 and 8.8.0.
> >> > 1. Configure nested schema.
> >> > 2. enableLazyFieldLoading is true (default).
> >> > 3. Run a search with hl.method=unified and hl.fl=<one of child text
> >> > fields> 4. Trying to do an atomic update on some of the *parents*
> >> > fields> of
> >> > the returned documents from #3.
> >> >
> >> > You get an error: "TransactionLog doesn't know how to serialize
> >> > class org.apache.lucene.document.LazyDocument$LazyField".
> >> >
> >> > Now trying to run #3 again yields an error message that the text
> >> > field is indexed without positions.
> >> >
> >> > If enableLazyFieldLoading is false or if using the default
> >> > highlighter this doesn't happen.
> >> >
> >> > 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.
> >>
> >
>
>
> 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.
>

Reply via email to