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 <[email protected]> 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 <[email protected]> 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
>> [email protected]
>> http://observer.wunderwood.org/ (my blog)
>>
>>
>>> On Feb 27, 2017, at 6:17 PM, Erik Hatcher <[email protected]> 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 <[email protected]>
>>>> 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
>>>> [email protected]
>>>> http://observer.wunderwood.org/ (my blog)
>>>>
>>>>
>>>
>>
>