<?php
/**
* IFile framework
*
* @category IndexingFile
* @package ifile.example
* @author Giampaolo Losito, Antonio Di Girolomo
* @copyright 2011-2013 isApp.it (www.isapp.it)
* @license GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999
* @version 1.2.1
*
*/
/**
* This script is a example how to search terms in the index with "parser" method with MiSqli Interface
* IFile can setting multi search
*
* IMPORTANT:
* For MySql is important define in the configuration (IFileConfig.xml)
* Define Table name that IFile must used
* The fields: name, path, filename as "Text":
*
<table-name collation="utf8_general_ci">ifile_index_table</table-name>
...
<zend-document>
<fields>
<field name="name" type="Text" />
<field name="path" type="Text" />
<field name="filename" type="Text" />
</fields>
</zend-document>
*
*/
error_reporting(E_ALL);
/** require IFileFactory */
require_once '../IFileFactory.php';
// Create connection at MySql
// IFile works only with MySqli InterfaceĆ¹
// First to test, you must create "example_ifile_index" DB in the your MySql
$connection = @new mysqli('localhost', 'root', '', 'example_ifile_index', 3306);
if (mysqli_connect_error()) {die(" - ".mysqli_connect_error()." - ");}
// try/catch
try {
// instance IFileFactory
$IFileFactory = IFileFactory::getInstance();
// define mysqli interface
$ifile = $IFileFactory->getIFileIndexing('mysqli', $connection);
// TEST Query PARSER
// For "parser" method you can use Lucene query
$search = "MATCH(body) AGAINST ('ifile')";
// define order
$ifile->setSort('key', SORT_STRING, SORT_DESC);
// call parser method
$result = $ifile->queryParser($search);
// print result
printResult("Parser Query MySql - order key:desc", $result);
} catch (Exception $e) {
echo "Error: ".$e->getMessage();
}
/**
* Function of utility. Used only for this example.
* Print result of search
*
* @param strint $type
* @param array $result_T
* @return
*/
function printResult($type, $result) {
echo "Type of search: ".$type;
if(!empty($result) && is_array($result)) {
echo "<br>Result Search:<br>";
foreach ($result as $hit) {
$doc = $hit->getDocument();
echo "File: ".$doc->name." - Chiave: ".$doc->key." - Score: ".$hit->score."<br>";
}
} else {
echo "<br>Not result returned<br>";
}
echo "End print for: ($type)<br><br>";
}
?>
|