You can't do this with stock solr, but a generic templating ability is
now in heliosearch (a fork of solr):
http://heliosearch.org/solr-query-parameter-substitution/

-Yonik
http://heliosearch.org - native code faceting, facet functions,
sub-facets, off-heap data


On Fri, Aug 15, 2014 at 5:46 AM, deepaksshettigar
<deepaksshetti...@gmail.com> wrote:
>
> Environment :-
> --------------------------------------------------
> Solr version 3.5
> Apache Web Server on Jboss AS 5.1.x
>
> =======================================
> Problem statement :-
> --------------------------------------------------
>
> I am using a singe request handler to handle dynamic scenarios.
> So my UI decides at runtime which facet field (using a Dynamic field type
> String) to apply.
> E.g. Depending on current' logged in user's usergroup ( employee,admin, etc)
> I apply the facet field as
> &facet.field=platform_emp OR &facet.field=platform_admin (it needed to
> designed this way due to functionality)
>
> How using this technique, I have many such dynamic facet fields & the Solr
> Query string became too long resulting in HTTP 413(request entity too
> large).
>
> Now, I am looking move these facet field declarations from the URL to the
> Search Request Handler.
>
> Is there way to have local params do this for me.
>
> =========================================
> Workable Solution:-
> -----------------------------------------------------
> I have tried local params, which works if the whole term is passed through a
> Query String,
> but am stuck with syntax with does not allow any concatenation of params to
> a prefix.
>
> My Request handler looks like this -
>
>   <requestHandler name="/browse" class="solr.SearchHandler">
>      <lst name="defaults">
>        <str name="echoParams">explicit</str>
>        <str name="defType">edismax</str>
>        .
>        .
>         <str name="facet.field">{!v=$role}</str>
>
>
> If I pass &role=plaform_emp OR &role=plaform_emp, it works for me, but i
> would like to move the prefix inside the handler, as I have more such facet
> fields to be declared dynamically, e.g
> facet.field=share_class_emp , facet.field=share_class_admin, etc
> However I would like to avoid these multiple facet.field declarations
> through the URL to avoid running into HTTP 413 at runtime.
>
> =======================================================
>
> Required Possible Solution:-
> ---------------------------
> Is there a way to have a configuration which might look like this -
>
>  <requestHandler name="/browse" class="solr.SearchHandler">
>      <lst name="defaults">
>        <str name="echoParams">explicit</str>
>        <str name="defType">edismax</str>
>        .
>        .
>        <str name="prefixPlatform">platform_</str>
>        <str name="prefixShareClass">share_class_</str>
>        <str name="facet.field">{!v=$prefixPlatform$role}</str>
>        <str name="facet.field">{!v=$prefixShareClass$role}</str>
>
>
> & pass &role=emp from the URL at runtime.
>
> ================================
>
> Another Query, is it possible to handle HTTP 413 by increasing Allowed HTTP
> Request Size on Apache/Jboss
>
> -----------------------------------------
>
> Any help will be highly appreciated.
>
> Regards
> Deepak
>
>
>
> --
> View this message in context: 
> http://lucene.472066.n3.nabble.com/Syntax-unavailable-for-parameter-substitution-Solr-3-5-tp4153197.html
> Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to