我正在使用Solr,我想使用两个约束来查询父文档。它目前只适用于一个禁令。
示例:
q={!parent which=type:parent}child_field:something
但是我想获得被定义为父文件的父文件(type attribute =“parent”)并且在字段“name”中有一些特定的单词。
我尝试了以下操作,但它返回错误:
q={!parent which=(type:parent) AND (name:someone)}child_field:something
org.apache.solr.search.SyntaxError:pos 33 str ='{!parent =(type:parent)AND(name:someone)} child_field:something'
的预期标识符
答案 0 :(得分:1)
根据BlockJoinParentQueryParser下的建议:
使用哪个 一个常见的错误是尝试使用哪个过滤器过滤父母,如下面的错误示例所示:
<?php class database { public $host = "_"; public $user = "_"; public $pass = "_"; public $db = "_"; public $conn = null; function connect() { return mysqli_connect($this->host, $this->user, $this->pass, $this->db); } function query($sql) { return mysqli_query($this->conn, $sql); } function escapestring($string){ return mysqli_real_escape_string($this->conn, $string); } function getrows($sql){ return mysqli_num_rows($sql); } } ?>
相反,您应该使用兄弟强制子句作为过滤器:
q={!parent which="title:join"}comments:SolrCloud
因此,从该示例得出,将所需的过滤器作为第一个强制子句应该起作用:
q=+title:join +{!parent which="content_type:parentDocument"}comments:SolrCloud