And by turning off parameter substitutions I meant disable `expandMacros` - 
https://cwiki.apache.org/confluence/display/solr/Parameter+Substitution 
<https://cwiki.apache.org/confluence/display/solr/Parameter+Substitution>

Likely you haven’t and this feature should work.   I’d remove `scores` from 
your config (unless you’re going to provide a valid default, by maybe moving 
where  you put “desc” in the parameters) and provide that as a mandatory (or 
optional depending on how you arrange the params, possibly) `scores` param.


   /select?q=*:*&scores=feature_a_1,feature_b_2
     &sort=sum(${scores}) desc




> On Feb 27, 2017, at 9:35 PM, Erik Hatcher <erik.hatc...@gmail.com> wrote:
> 
> You have an empty “scores” parameter in there.  You’re not showing your full 
> search request, but did you provide that in the request?   Have you perhaps 
> turned off parameter substitutions?
> 
>       Erik
> 
> 
> 
> 
>> On Feb 27, 2017, at 9:26 PM, Walter Underwood <wun...@wunderwood.org> wrote:
>> 
>> With this in the config…
>> 
>> <requestHandler name="/display_tutor_rank" class="solr.SearchHandler">
>>    <!-- Note! Needs FuzzyDismax handler! --> 
>>    <lst name="defaults">
>>      <str name="defType">edismax</str>
>>      <str name="mm">0</str>
>>      <bool name="lowercaseOperators">false</bool>
>>      <str name="fl">id,
>>      image_thumb_large, image_thumb_medium, image_thumb_small,
>>      image_thumb_xlarge, uri, user_id, last_name, first_name,
>>      name, school, major, graduation_year, tutor_profile_id,
>>      positive_reviews, negative_reviews, gender, about_experience,
>>      about_extracurricular, time_approved</str>
>>      <str name="q.alt">*:*</str>
>>      <str name="qf">about_experience  about_extracurricular School  
>> Major</str>
>>      <str name="scores"></str>
>>      <str 
>> name="sort">sum(interaction_responsiveness_score,profile_completeness_score,school_score,us_tax_id_score,highlight_score,${scores})
>>  desc</str>
>>      <str name="boost">log(sum(1,max(positive_reviews,0)))</str>
>>      <str name="tie">0.1</str>
>>    </lst>
>> </requestHandler>
>> 
>> I see this… [Solr 6.3.0]
>> 
>> org.apache.solr.common.SolrException: Unable to reload core 
>> [tutors_shard1_replica11]
>>      at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:950)
>>      at 
>> org.apache.solr.core.SolrCore.lambda$getConfListener$6(SolrCore.java:2708)
>>      at 
>> org.apache.solr.cloud.ZkController.lambda$fireEventListeners$4(ZkController.java:2448)
>>      at java.lang.Thread.run(Thread.java:745)
>> Caused by: org.apache.solr.common.SolrException: Could not load conf for 
>> core tutors_shard1_replica11: Error loading solr config from solrconfig.xml
>>      at 
>> org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:85)
>>      at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:942)
>>      ... 3 more
>> Caused by: org.apache.solr.common.SolrException: Error loading solr config 
>> from solrconfig.xml
>>      at 
>> org.apache.solr.core.SolrConfig.readFromResourceLoader(SolrConfig.java:187)
>>      at 
>> org.apache.solr.core.ConfigSetService.createSolrConfig(ConfigSetService.java:97)
>>      at 
>> org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:77)
>>      ... 4 more
>> Caused by: org.apache.solr.common.SolrException: No system property or 
>> default value specified for scores 
>> value:sum(interaction_responsiveness_score,profile_completeness_score,school_score,us_tax_id_score,highlight_score,${scores})
>>  desc
>>      at 
>> org.apache.solr.util.PropertiesUtil.substituteProperty(PropertiesUtil.java:65)
>>      at org.apache.solr.util.DOMUtil.substituteProperties(DOMUtil.java:298)
>> 
>> wunder
>> Walter Underwood
>> wun...@wunderwood.org
>> http://observer.wunderwood.org/  (my blog)
>> 
>> 
>>> On Feb 27, 2017, at 6:17 PM, Erik Hatcher <erik.hatc...@gmail.com> wrote:
>>> 
>>> Walter -
>>> 
>>> How about this, for the latter part of your request:
>>> 
>>> /handler?features=a,b,c
>>> 
>>>   with &sort=sum(${features}) desc
>>> 
>>> That ought to do the trick.   At first I thought the #foreach nature of the 
>>> list of features was prohibitive, but since you’re literally plugging in 
>>> the exact string value and it’s used as a comma-separated list then this 
>>> should work.
>>> 
>>> But with the just a list of subject ID’s I think you’re in custom 
>>> development now (or a JavaScript stage in a Fusion query pipeline ;) in 
>>> building a SearchComponent that takes a `features` parameter and builds the 
>>> sort param as needed from that.
>>> 
>>>     Erik
>>> 
>>> 
>>> 
>>>> On Feb 27, 2017, at 7:17 PM, Walter Underwood <wun...@wunderwood.org> 
>>>> wrote:
>>>> 
>>>> We have documents with parameterized features. For a school subject 
>>>> (calculus, accounting), we have three sets of features. So for subject=4 
>>>> and subject=186, we have:
>>>> 
>>>> feature_a_4: 0.9
>>>> feature_b_4: 1.6
>>>> feature_c_4: 8.2
>>>> feature_a_186: 3.0
>>>> feature_b_186: 2.1
>>>> feature_c_186: 99.2
>>>> 
>>>> I’d like to pass in the subject IDs and make a function query (for 
>>>> sorting) from those, ending up with
>>>> 
>>>> sum(feature_x, feature_y, feature_a_4, feature_b_4, feature_c_4, 
>>>> feature_a_186, feature_b_186, feature c_186) desc
>>>> 
>>>> That would be used for the sort parameter.
>>>> 
>>>> Failing that, it would be nice so just pass in the parameterized portion, 
>>>> like this:
>>>> 
>>>> /handler?features=feature_a_4,feature_b_4,feature_c_4,feature_a_186,feature_b_186,feature
>>>>  c_186
>>>> 
>>>> Right now, I can’t even make a solrconfig.xml that will load. I’ve read 
>>>> everything I can find on params and function queries.
>>>> 
>>>> wunder
>>>> Walter Underwood
>>>> wun...@wunderwood.org
>>>> http://observer.wunderwood.org/  (my blog)
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to