2016-05-18 7 views
0

solrで複数のsetQueryを使用するには? は、私は私がどのように使用するために知っているよう このsolrを使って複数のsetquryを使用するには?

if(isset($_GET["name"]) && $_GET["name"]!=""){ 
      $query->setQuery('name:*'.$_GET["name"].'*'); 
     } 

     if(isset($_GET["email"]) && $_GET["email"]!=""){ 
      $query->setQuery('email:*'.$_GET["email"].'*'); 
     } 
     if(isset($_GET["role"]) && $_GET["role"]!=""){ 
      $query->setQuery('role:*'.$_GET["role"].'*'); 
     } 
     if(isset($_GET["status"]) && $_GET["status"]!=""){ 
      $query->setQuery('status:'.$_GET["status"]); 
     } 

しかし、その与えない適切な応答のように使用しています 名=「喧騒」とstaus =「アクティブ」とメール=「喧騒」を検索したいですか?

答えて

1

->setQuery()はクエリを設定します。いくつかの条件を設定する場合は、すべての条件を指定する必要があります。また、変数$_GETにはスペースや類似の値を含めることができ、適切にエスケープする必要があります。

あなたは最後に、単一のクエリ文字列にそれをマージする前に、自身で各用語を保つことによって、クエリを構築することができます。

$queries = array(); 

if (!empty(if($_GET["name"])) { 
    // add proper escaping here, so you don't escape * as well. 
    $queries[] = 'name:*'.$_GET["name"].'*'; 
} 

// you probably want to check that there actually is any queries here as well 
$query->setQuery(join(" AND ", $queries)); 
+0

グレート...その作業.... –

+0

@DineshKumarグレート!回答があれば受け入れてください:-) – MatsLindh

+0

Hii正確な単語を検索する方法を教えてください。 –

関連する問題