Я перехожу с solr 5.5 на solr 8. Запрос для solr 5.5 выглядит так:
qt=/dismax
product_fields_Ref1=product_concept^279841
sku_and_product_fields_Ref1=silhouette_concept^234256 $product_fields_Ref1
product_phrase_Ref2=pant
concept_with_synonyms_ref1=({!edismax2 qf=$sku_and_product_fields_Ref1 v=$product_phrase_Ref2})
top_concept_query_ref= (+({!maxscore v=$concept_with_synonyms_ref1}) )
productQueryRef3=+(+({!query v=$cq})) +( ({!maxscore v=$top_concept_query_ref}) )
sq=+{!lucene v=$productQueryRef3}
q={!parent tag=top which=$pq score=max v=$sq}
Но выдает ошибку на solr 8.0 с ошибкой -
Ошибка сервера по адресу http://localhost:8080/products: org.apache.solr.search.SyntaxError: Поле запроса «$ product_fields_Ref1» не является допустимым именем поля.
Если я изменю запрос следующим образом (удалю переменную product_fields_Ref1 и добавлю значение непосредственно в sku_and_product_fields_Ref1) -
qt=/dismax
sku_and_product_fields_Ref1=silhouette_concept^234256 product_concept^279841
product_phrase_Ref2=pant
concept_with_synonyms_ref1=({!edismax2 qf=$sku_and_product_fields_Ref1 v=$product_phrase_Ref2})
top_concept_query_ref= (+({!maxscore v=$concept_with_synonyms_ref1}) )
productQueryRef3=+(+({!query v=$cq})) +( ({!maxscore v=$top_concept_query_ref}) )
sq=+{!lucene v=$productQueryRef3}
q={!parent tag=top which=$pq score=max v=$sq}
Проблема в том, что я не могу изменить этот запрос, так как значение параметра "product_fields_Ref1" компилируется из большого количества мест. Я использую только defType=dismax. Может ли кто-нибудь подсказать, что нужно исправить?