[ 
https://issues.apache.org/jira/browse/SOLR-8208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059731#comment-15059731
 ] 

Cao Manh Dat edited comment on SOLR-8208 at 12/16/15 9:21 AM:
--------------------------------------------------------------

I changed the api back like Mikhail's suggestion

Result so far. 
Query
{code}
q=name_s:dave
&fl=*,[subquery prefix=subq1 name=depts]
&subq1.q={!term f=dept_id_s v=$subq1.row.dept_ss_dv}
{code}

Input
{code}
doc("id", "4","name_s", "dave", "title_s", "MTS", "dept_ss_dv","Support", 
"dept_ss_dv","Engineering"))

doc("id","10", "dept_id_s", "Engineering", "text_t","These guys develop stuff", 
"salary_i_dv", "1000")
doc("id","13", "dept_id_s", "Support", "text_t","These guys help 
customers","salary_i_dv", "800")
{code}

Result
{code}
{
  "id": "4",
  "name_s_dv": "dave",
  "title_s_dv": "MTS",
  "dept_ss_dv": [
    "Support",
    "Engineering"
  ],
  "depts": [
    {
      "id": "13",
      "dept_id_s_dv": "Support",
      "text_t": "These guys help customers",
      "salary_i_dv": 800
    }
  ]
}
{code}

I just have one question. What should we do when from field have multiple 
values? Should we change the {code}subq1.q{code} to
{code}
{!term f=dept_id_s v="Support Engineer"}
{code}

I will submit the patch frequently to keep me on track. Hope that it not bother 
people.


was (Author: caomanhdat):
I changed the api back like Mikhail's suggestion

Result so far. 
Query
{code}
q=name_s:dave&fl=*,[subquery prefix=subq1 name=depts]", "subq1.q","{!term 
f=dept_id_s v=$subq1.row.dept_ss_dv}"
{code}

Input
{code}
doc("id", "4","name_s", "dave", "title_s", "MTS", "dept_ss_dv","Support", 
"dept_ss_dv","Engineering"))

doc("id","10", "dept_id_s", "Engineering", "text_t","These guys develop stuff", 
"salary_i_dv", "1000")
doc("id","13", "dept_id_s", "Support", "text_t","These guys help 
customers","salary_i_dv", "800")
{code}

Result
{code}
{
  "id": "4",
  "name_s_dv": "dave",
  "title_s_dv": "MTS",
  "dept_ss_dv": [
    "Support",
    "Engineering"
  ],
  "depts": [
    {
      "id": "13",
      "dept_id_s_dv": "Support",
      "text_t": "These guys help customers",
      "salary_i_dv": 800
    }
  ]
}
{code}

I just have one question. What should we do when from field have multiple 
values? Should we change the {code}subq1.q{code} to
{code}
{!term f=dept_id_s v="Support Engineer"}
{code}

I will submit the patch frequently to keep me on track. Hope that it not bother 
people.

> DocTransformer executes sub-queries
> -----------------------------------
>
>                 Key: SOLR-8208
>                 URL: https://issues.apache.org/jira/browse/SOLR-8208
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Mikhail Khludnev
>              Labels: features, newbie
>         Attachments: SOLR-8208.patch, SOLR-8208.patch
>
>
> The initial idea was to return "from" side of query time join via 
> doctransformer. I suppose it isn't  query-time join specific, thus let to 
> specify any query and parameters for them, let's call them sub-query. But it 
> might be problematic to escape subquery parameters, including local ones, 
> e.g. what if subquery needs to specify own doctransformer in &fl=\[..\] ?
> I suppose we can allow to specify subquery parameter prefix:
> {code}
> ..&fl=id,[subquery paramPrefix=subq1. 
> fromIndex=othercore],score,..&subq1.q={!term f=child_id 
> v=$subq1.row.id}&subq1.rows=3&subq1.sort=price&..
> {code}       
> * {{paramPrefix=subq1.}} shifts parameters for subquery: {{subq1.q}} turns to 
> {{q}} for subquery, {{subq1.rows}} to {{rows}}
> * {{fromIndex=othercore}} optional param allows to run subquery on other 
> core, like it works on query time join
> * the itchiest one is to reference to document field from subquery 
> parameters, here I propose to use local param {{v}} and param deference 
> {{v=$param}} thus every document field implicitly introduces parameter for 
> subquery $\{paramPrefix\}row.$\{fieldName\}, thus above subquery is 
> q=child_id:<doc.getField("id")>, presumably we can drop "row." in the middle 
> (reducing to v=$subq1.id), until someone deal with {{rows}}, {{sort}} fields. 
> * \[subquery\], or \[query\], or ? 
> Caveat: it should be a way slow; it handles only search result page, not 
> entire result set. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to