Hi Roopa,
as far as I know, no one is currently working on this nor it's on any
committer priority to-do list.
A first step would be for you to create an "improvement" Jira issue in the
SOLR jira (https://issues.apache.org/jira/browse/SOLR-15407).

Then you have three options:
1) you do it yourself and contribute it to the community
2) wait for a committer to have the interest and will to pick the issue in
their free time
3) hire a company/software engineer/committer to do the job and contribute
it to the community/plugin for your company

Cheers
--------------------------
Alessandro Benedetti
Apache Lucene/Solr Committer
Director, R&D Software Engineer, Search Consultant

www.sease.io


On Wed, 23 Jun 2021 at 15:57, Roopa Rao <roop...@gmail.com> wrote:

> Hi Alessandro,
>
> Thank you for the details in your response and your interest in this.
>
> Do you know if it might be coming in upcoming Solr releases?
>
> Thanks,
> Roopa
>
> On Wed, Jun 23, 2021 at 6:49 AM Alessandro Benedetti <a.benede...@sease.io
> >
> wrote:
>
> > Hi Roopa,
> > that's clearer now, thanks.
> >
> > I don't think there's any support for feature extraction from children
> when
> > calculating the feature vector of a parent.
> > It's an interesting feature though.
> > I would love to design and implement such functionality.
> > If you want to do that on your own I recommend working from the current
> > supported features implementations
> > (/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature)
> >
> > Cheers
> > --------------------------
> > Alessandro Benedetti
> > Apache Lucene/Solr Committer
> > Director, R&D Software Engineer, Search Consultant
> >
> > www.sease.io
> >
> >
> > On Tue, 22 Jun 2021 at 19:47, Roopa Rao <roop...@gmail.com> wrote:
> >
> > > Hi Alessandro,
> > >
> > > Thanks for the response.
> > >
> > > I am using version Solr 6.6
> > >
> > > Basically, I have parent documents and multiple child documents for
> each
> > > parent.
> > > I am trying to create features and get feature scores on parent
> > attributes
> > > (which is straightforward) and child attributes (which is what I am
> > looking
> > > for examples).
> > > And then rerank documents based on an LTR model which will use these
> > > features (on both parent & child).
> > >
> > > Enclosing the parent-child structure and the query construction (where
> > you
> > > can see I am using a child transformer) and also a sample feature,
> > current
> > > sample features score output.
> > >
> > >
> > > <doc>
> > >     <str name="id">abc-1</str>
> > >     <str name="unique_id_s">feature-1281835650</str>
> > >     <str name="type">parent-docs</str>
> > >     <str name="title_s">Parent title1 text1 </str>
> > >     <str name="summary_s">Parent summary1 text2</str>
> > >
> > >     <doc>
> > >         <str name="id">child-doc-12345</str>
> > >         <str name="unique_id_s">feature-1281835650</str>
> > >         <str name="type">child-docs</str>
> > >         <str name="child_doc_resource_id_s">9735</str>
> > >         <str name="child_doc_resource_desc_s">A sample child doc
> > desc</str>
> > >         <date name="child_doc_dt">2021-09-01T00:00:00Z</date>
> > >         <arr name="child_doc_product_s_mult">
> > >             <str>productA</str>
> > >             <str>productB</str>
> > >             <str>productC</str>
> > >         </arr>
> > >     </doc>
> > >     <doc>
> > >         <str name="id">child-doc-56788</str>
> > >         <str name="unique_id_s">feature-1281835650</str>
> > >         <str name="type">child-docs</str>
> > >         <str name="child_doc_resource_id_s">3426</str>
> > >         <str name="child_doc_resource_desc_s">A sample child doc desc -
> > > 2</str>
> > >         <date name="child_doc_dt">2021-09-02T00:00:00Z</date>
> > >         <arr name="child_doc_product_s_mult">
> > >             <str>productD</str>
> > >             <str>productE</str>
> > >             <str>productF</str>
> > >         </arr>
> > >     </doc>
> > > </doc>
> > >
> > > Query construction:
> > > Get documents based on search of parent document attributes - title,
> > > summary.
> > > Get the corresponding child document in the response, filtered by
> > products
> > > eligible to, restrict to 1 (for display purposes).
> > > Rerank based on a model and get feature scores on both attributes on
> > parent
> > > and attributes on child.
> > >
> > > https://localhost:8983/testhandler?q=trying to
> > >
> > >
> >
> test&rows=100&start=0&q.op=AND&timeAllowed=20000&fl=id,score,title_s,summary_s,[features
> > > store=testFeatureStore],[explain]&fl=_childDocuments_&fl=[child
> > > parentFilter='type:parent-docs' childFilter='((type:(child-docs)) AND
> > > ({!terms f=child_doc_product_s_mult}productA,productD))'
> > > limit=1]&sort=score
> > >
> > >
> >
> desc&fq=(type:(parent-docs))&defType=edismax&df=title_qf_default&q.alt=*:*&pf=title_qf_default^2.0
> > > title_qf_synonym^2.0&qf=title_qf_default^2.0
> > >
> >
> summary_qf_default^1.0&sow=false&lowercaseOperators=false&tie=0.0&rq={!ltr
> > > model=testModel reRankDocs=100 efi.uq=$q}
> > >
> > > Here trying to create features for title_s match with uq (user query) -
> > > which works fine since it is on the parent.
> > > Sample feature:
> > > {
> > >     "name": "feature_title_match",
> > >     "class": "org.apache.solr.ltr.feature.SolrFeature",
> > >     "params": {
> > >     "q": "{!dismax qf=title_qf_default}${uq:none}"
> > >     },
> > >     "store": "testFeatureStore"
> > > }
> > >
> > > Similarly I need to create features for child_doc_resource_desc_s match
> > > with uq (user query) and a few more features on child_doc attributes.
> > >
> > > Right now I am getting scores on the parent attributes as expected.
> > >
> > > *However writing features on the child document attributes and getting
> > > feature scores for them is what I am looking for:*
> > > Current Sample output:
> > >
> > > <str
> > >
> > >
> >
> name="[features]">originalScore=61.886406,feature_title_match=8.004536,feature_summary_match=3.340,feature_title_synonym_expansion=15.471601</str>
> > >
> > > Similarly want to build features: feature_child_doc_resource_desc which
> > > would give a feature score of user query matched with
> > > child_doc_resource_desc_s attribute of the child doc:
> > >
> > > So an output like this may be? or feature scores on child comes under
> > each
> > > child document not sure
> > > <str
> > >
> > >
> >
> name="[features]">originalScore=61.886406,feature_title_match=8.004536,feature_summary_match=3.340,feature_title_synonym_expansion=15.471601,feature_child_doc_resource_desc=value1</str>
> > >
> > >
> > > Thank you!
> > > Roopa
> > >
> > > On Tue, Jun 22, 2021 at 1:04 PM Alessandro Benedetti <
> > a.benede...@sease.io
> > > >
> > > wrote:
> > >
> > > > Hi Roopa,
> > > > can you elaborate a bit better?
> > > > Child documents are documents nonetheless, so you can query them,
> rank
> > > them
> > > > and re0rank them.
> > > > So, what are you trying to do?
> > > > Are you using any block join related query parsers?
> > > > Do you want to combine it with learning to rank?
> > > > How?
> > > > Let us know and we can try to help!
> > > >
> > > > --------------------------
> > > > Alessandro Benedetti
> > > > Apache Lucene/Solr Committer
> > > > Director, R&D Software Engineer, Search Consultant
> > > >
> > > > www.sease.io
> > > >
> > > >
> > > > On Mon, 21 Jun 2021 at 19:12, Roopa Rao <roop...@gmail.com> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > Is there a way to get the feature score on fields on the
> > childDocuments
> > > > in
> > > > > LTR.
> > > > > Note that there could be multiple childDocuments.
> > > > >
> > > > > If there are example features that can be provided which uses query
> > on
> > > > the
> > > > > child documents will be helpful
> > > > >
> > > > > Thank you,
> > > > > Roopa
> > > > >
> > > >
> > >
> >
>

Reply via email to