[
https://issues.apache.org/jira/browse/SOLR-7888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14701722#comment-14701722
]
Arcadius Ahouansou edited comment on SOLR-7888 at 8/19/15 1:41 AM:
-------------------------------------------------------------------
Hello [~janhoy].
Sorry I have been away for quite a while.
I have just uploaded an updated version of the patch.
Changes dones are as follow:
- No need to pass the query field anymore. the internal
{{AnalyzingInfixSuggester.CONTEXTS_FIELD_NAME}} is used as query field i.e. the
recommended way to filter is just {{"ctx2 AND ctx3"}} instead of the old way
{{"contexts:ctx2 AND contexts:ctx3"}}
- Most of the logic for parsing queries has been moved from
{{SuggestComponent.java}} into {{SolrSuggester.java}}
- Multiple suggester can be configured, each one having a different analyzer
for the context field as the query parsing in now done in the SolrSuggester.
- The {{contextAnalyzerFieldType}} config is optional and by default, the
analyzer of the context field will be used
- There is a test
{{testContextFilterParamIsIgnoredWhenContextIsNotImplemented()}} to test that
if you send context filtering query to a suggester that does not support
context, the filtering is just ignored and suggest return result.
Along the same line, there is also a test
{{testContextFilteringIsIgnoredWhenContextIsImplementedButNotConfigured()}}
So, the implementation is more friendly now.
- Suggester build will throw exception only if you configure context in
solrconfig.xml on a suggester that does not support context. But queries still
return normally, just the build operation for the concerned suggester fails.
There is a test
{{testBuildThrowsIllegalArgumentExceptionWhenContextIsConfiguredButNotImplemented()}}
to cover that
- buildAll will fail for all (not just the concerned suggester) if you
configure context in solrconfig.xml on a suggester that does not support context
- Regarding the parameter name. The initial implementation if did used the name
{{suggest.cfq}} for ContextFilterQuery. Then I looked at
{{suggest.dictionary}}, {{suggest.reloadAll}} etc which are plain English. For
now, I have not yet changed the name. I will change it as soon as we agreed on
that.
Please let me know in case I have missed anything you mentioned.
Thank you very much.
Arcadius
was (Author: arcadius):
Hello [~janhoy].
Sorry I have been away for quite a while.
I have just uploaded an updated version of the patch.
Changes dones are as follow:
- No need to pass the query field anymore. the internal
{{AnalyzingInfixSuggester.CONTEXTS_FIELD_NAME}} is used as query field i.e. the
recommended way to filter is just {{"ctx2 AND ctx3"}} instead of the old way
{{"contexts:ctx2 AND contexts:ctx3"}}
- Most of the logic for parsing queries has been moved into
{{SuggestComponent.java}} to {{SolrSuggester.java}}
- Multiple suggester can be configured, each one having a different analyzer
for the context field.
- The {{contextAnalyzerFieldType}} config is optional and by default, the
analyzer of the context field will be used
- There is a test
{{testContextFilterParamIsIgnoredWhenContextIsNotImplemented()}} to test that
if you send context filtering query to a suggester that does not support
context, the filtering is just ignored and suggest return result.
Along the same line, there is also a test
{{testContextFilteringIsIgnoredWhenContextIsImplementedButNotConfigured()}}
So, the implementation is more friendly now.
- Suggester build will throw exception only if you configure context in
solrconfig.xml on a suggester that does not support context. But queries still
return normally, just the build operation for the concerned suggester fails.
There is a test
{{testBuildThrowsIllegalArgumentExceptionWhenContextIsConfiguredButNotImplemented()}}
to cover that
- buildAll will fail for all (not just the concerned suggester) if you
configure context in solrconfig.xml on a suggester that does not support context
- Regarding the parameter name. The initial implementation if did used the name
{{suggest.cfq}} for ContextFilterQuery. Then I looked at
{{suggest.dictionary}}, {{suggest.reloadAll}} etc which are plain English. For
now, I have not yet changed the name. I will change it as soon as we agreed on
that.
Please let me know in case I have missed anything you mentioned.
Thank you very much.
Arcadius
> Make Lucene's AnalyzingInfixSuggester.lookup() method that takes a
> BooleanQuery filter parameter available in Solr
> ------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-7888
> URL: https://issues.apache.org/jira/browse/SOLR-7888
> Project: Solr
> Issue Type: New Feature
> Components: Suggester
> Affects Versions: 5.2.1
> Reporter: Arcadius Ahouansou
> Assignee: Jan Høydahl
> Fix For: 5.4
>
> Attachments: SOLR-7888.patch, SOLR-7888.patch
>
>
> LUCENE-6464 has introduced a very flexible lookup method that takes as
> parameter a BooleanQuery that is used for filtering results.
> This ticket is to expose that method to Solr.
> This would allow user to do:
> {code}
> /suggest?suggest=true&suggest.build=true&suggest.q=term&suggest.contextFilterQuery=contexts:tennis
> /suggest?suggest=true&suggest.build=true&suggest.q=term&suggest.contextFilterQuery=contexts:golf
> AND contexts:football
> {code}
> etc
> Given that the context filtering in currently only implemented by the
> {code}AnalyzingInfixSuggester{code} and by the
> {code}BlendedInfixSuggester{code}, this initial implementation will support
> only these 2 lookup implementations.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]