【发布时间】:2020-03-07 19:42:27
【问题描述】:
我正在从 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 。 任何人都可以指导需要修复的内容吗?
【问题讨论】: