如何在zend lucene中搜索多个查询?

时间:2012-04-30 11:02:43

标签: php zend-framework

我有3个字段,其中两个是数组,一个是名称字段。如何从zend lucene索引中搜索这些记录。

code:

$name = $_POST ['name'];

$emails = $_POST ['email']; // this is a array

$xId = $_POST ['xId']; // this also an array

$index = new Zend_Search_Lucene ( 'test-index' );

1 个答案:

答案 0 :(得分:2)

试试这个

$name = $_POST ['name'];

$emails = $_POST ['email']; // this is a array

$xIds = $_POST ['xId']; // this also an array

// Making array as string
$emailIds = '';
foreach($emails as $email) {
    $emailIds .= $email . " ";
}

// Making array as string
$xIdsString = '';
foreach ($xIds as $xId) {
    $xIdsString .= $xId . " ";
}

// Create a new index object
$index = new Zend_Search_Lucene ( 'test-index' );

// Here we are going to search over multiple fields. 
// we are just creating the string for right now
$name_query     = "name:($lastName)";
$emails_query   = "emails:($emailIds)";
$xIds_query     = "xIds:($xIdsString)";

// Parse the query
$query = Zend_Search_Lucene_Search_QueryParser::parse("$name_query $emails_query $xIds_query");

$hits  = $index->find($query);
print_r($hits);