[
https://issues.apache.org/jira/browse/SOLR-8208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
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.
{noformat}
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: 152
SolrCore.execute(SolrRequestHandler, SolrQueryRequest, SolrQueryResponse) line:
2033
SubQueryAugmenter.transform(SolrDocument, int, float) line: 226
DocsStreamer.next() line: 146
...
{noformat}
Multivalue fields substitution should be implemented before it moves further.
> DocTransformer executes sub-queries
> -----------------------------------
>
> Key: SOLR-8208
> URL: https://issues.apache.org/jira/browse/SOLR-8208
> 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.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]