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 > > > > > > > > > > > > > > >