我有一个使用solr的drupal站点。它工作正常,除非我对同一个字段有2个范围查询,然后它中断,我得到以下错误:
尝试使用Solr搜索时发生错误:“400”状态:错误请求:错误请求{“错误”:{“msg”:“org.apache.solr.search.SyntaxError:无法解析'((im_field_products_collection) $ field_products $ field_product_winch_line_length:[\“90 \”':遇到\“\”在第1行第83列。\ n期待以下之一:\ n \“TO \”... \ n ... \ n .. 。\ n“,”“代码”:400}}。
这是模块为该字段生成的查询
(({!tag = facet:field_products_collection:field_products:field_product_winch_line_length}((im_field_products_collection $ field_products $ field_product_winch_line_length:[“90”TO ])(im_field_products_collection $ field_products $ field_product_winch_line_length:[ TO“99 “))))OR({!tag = facet:field_products_collection:field_products:field_product_winch_line_length}((im_field_products_collection $ field_products $ field_product_winch_line_length:[”100“TO ])(im_field_products_collection $ field_products $ field_product_winch_line_length:[ TO “109”]))))
一切看起来都对我来说,并且它只对字段上的单个范围查询工作正常,是否有人知道查询的哪个部分会导致错误?我正在使用edismax解析器。
答案 0 :(得分:0)
经过几个小时的研究,模块将标记字段添加到查询的每个部分的开头,SOLR不喜欢这个部分。通过仅在开头添加标记注释并删除第二个注释,查询现在看起来效果很好。