lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Khludnev (JIRA)" <>
Subject [jira] [Updated] (SOLR-8208) DocTransformer executes sub-queries
Date Fri, 01 Apr 2016 08:28:25 GMT


Mikhail Khludnev updated SOLR-8208:
    Attachment: SOLR-8208.patch

attaching the shuffled tests. 
revealed a design gap - even if doc field isn't referred in subquery, because solr eagerly
copies params. That's a pity.
org.apache.solr.common.SolrException: SubQuery depts cant substitute  multiple values [stored,indexed,toke
via parameter "subq1.row.dept_ss_dv" for document SolrDocument{id=stor

SubQueryAugmenter$DocParams.get(String) line: 172	
SubQueryAugmenter$DocParams.getParams(String) line: 139	
DefaultSolrParams.getParams(String) line: 44	
MultiMapSolrParams.asMultiMap(SolrParams, boolean) line: 103	
RequestUtil.processParams(SolrRequestHandler, SolrQueryRequest, SolrParams, SolrParams, SolrParams)
line: 104	
SolrPluginUtils.setDefaults(SolrRequestHandler, SolrQueryRequest, SolrParams, SolrParams,
SolrParams) line: 176	
SearchHandler(RequestHandlerBase).handleRequest(SolrQueryRequest, SolrQueryResponse) line:
SolrCore.execute(SolrRequestHandler, SolrQueryRequest, SolrQueryResponse) line: 2033	
SubQueryAugmenter.transform(SolrDocument, int, float) line: 226 line: 146	

Multivalue fields substitution should be implemented before it moves further. 

> DocTransformer executes sub-queries
> -----------------------------------
>                 Key: SOLR-8208
>                 URL:
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Mikhail Khludnev
>            Assignee: Mikhail Khludnev
>              Labels: features, newbie
>         Attachments: SOLR-8208.diff, SOLR-8208.patch, SOLR-8208.patch, SOLR-8208.patch,
SOLR-8208.patch, SOLR-8208.patch, 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.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=$, 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

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message