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